ADO.NET 基础教程(二)

王朝c#·作者佚名  2006-01-09
宽屏版  字体: |||超大  

上一节讲到了怎样使用ADO.NET来查询数据,这节讲怎么样运行SQL的SELECT、INSERT和UPDATE命令及存储过程

1、存储过程

C#的代码如下:

/// <summary>

/// 存储过程参数结构

/// </summary>

public struct ProcParam

{

public string ParamName;

public string ParamValue;

public System.Data.SqlDbType ParamType ;

}

/// <summary>

/// 执行一个返回数据集的存储过程

/// </summary>

/// <param name="strProcName">存储过程名称</param>

/// <param name="alParamName" >参数名称</param>

/// <param name="alParamValue" >参数值</param>

/// <param name="constring">数据连接串</param>

/// <returns></returns>

public static System.Data.SqlClient.SqlDataReader ExecProcedure(string strProcName,System.Collections.ArrayList alParamName,System.Collections.ArrayList alParamValue,string constring)

{

System.Data.SqlClient.SqlConnection cn=new System.Data.SqlClient.SqlConnection (constring);

cn.Open ();

System.Data.SqlClient.SqlCommand cmd=new System.Data.SqlClient. SqlCommand ();

cmd.Connection =cn;

cmd.CommandType =System.Data.CommandType.StoredProcedure ;

cmd.CommandText =strProcName;

for(int i=0;i<alParamName.Count ;i++)

{

System.Data.SqlClient.SqlParameter param=new System.Data.SqlClient.SqlParameter (alParamName[i].ToString (),alParamValue[i].ToString ());

cmd.Parameters.Add (param);

}

System.Data.SqlClient.SqlDataReader dr;

dr=cmd.ExecuteReader ();

return dr;

}

上述代码可以执行任意参数的存储过程(返回一个数据集)

2、直接SQL命令

/// <summary>

/// 执行一个返回字符串的SQL SCRIPT

/// </summary>

/// <param name="constring" >连接串</param>

/// <param name="SQL_COMMAND" >SQL命令</param>

/// <returns>返回数据集</returns>

public static string GetDataString(string SQL_COMMAND,string constring)

{

System.Data.SqlClient.SqlConnection cn=new System.Data.SqlClient.SqlConnection (constring);

cn.Open ();

System.Data.SqlClient.SqlCommand cmd=new System.Data.SqlClient. SqlCommand ();

cmd.Connection =cn;

cmd.CommandType =System.Data.CommandType.Text ;

cmd.CommandText =SQL_COMMAND;

string str="";

try

{

str=cmd.ExecuteScalar().ToString ();

}

catch(System.Data.SqlClient.SqlException e)

{

System.Diagnostics.Debug.WriteLine (e.Message );

}

catch(Exception ex)

{

System.Diagnostics.Debug.WriteLine (ex.Message );

}

return str;

}

/// <summary>

/// 执行一个无返回的SQL

/// </summary>

/// <param name="SQL_COMMAND"></param>

/// <param name="constring"></param>

/// <returns></returns>

public static void Executesql(string SQL_COMMAND,string constring)

{

System.Data.SqlClient.SqlConnection cn=new System.Data.SqlClient.SqlConnection (constring);

cn.Open ();

System.Data.SqlClient.SqlCommand cmd=new System.Data.SqlClient. SqlCommand ();

cmd.Connection =cn;

cmd.CommandType =System.Data.CommandType.Text ;

cmd.CommandText =SQL_COMMAND;

try

{

cmd.ExecuteNonQuery ();

}

catch(System.Data.SqlClient.SqlException e)

{

System.Diagnostics.Debug.WriteLine (e.Message );

}

catch(Exception ex)

{

System.Diagnostics.Debug.WriteLine (ex.Message );

}

}

以上代码建议放在一个类中,如果有问题请与我联系msn:ilxc8292@hotmail.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有