存储过程在C#中的使用(二)转

it2022-05-09  31

存储过程在C#中的使用( 1 ) 前面有篇文章已经介绍了如何在sqlserver2000中创建存储过程, 那么在这里我们就来具体 看看在C#中如何使用. 先看看创建输入参数的存储过程如何在C#中使用. 创建一个简单的插入存储过程,代码如下: create procedure TestProcedure @id int , @uname varchar( 20 ),@upass varchar( 20 ) as insert into [user] values(@id,@uname,@upass) GO 然后在C#中使用,来看看,界面上有三个文本框以供用户输入数据 ,textBox1,textBox2,textBox3 using (SqlConnection conn = new SqlConnection(connstring)) {    conn.Open();    SqlCommand command = new SqlCommand();    command.CommandText = "TestProcedure";//指定存储过程名    command.Connection = conn;    command.CommandType=CommandType.StoredProcedure;/ /指定类型为存储过程    SqlParameter sp = new SqlParameter();    sp.ParameterName = "@id";    sp.SqlDbType = SqlDbType.Int;    sp.Value = int.Parse(this.textBox1.Text);    command.Parameters.Add(sp);    sp = new SqlParameter();    sp.ParameterName = "@uname";    sp.SqlDbType = SqlDbType.VarChar;    sp.Value = this.textBox2.Text;    command.Parameters.Add(sp);    sp = new SqlParameter();    sp.ParameterName = "@upass";    sp.SqlDbType = SqlDbType.VarChar;    sp.Value = this.textBox3.Text;    command.Parameters.Add(sp);    command.ExecuteNonQuery();    conn.Close(); } http://www.cnblogs.com/qinfei/archive/2005/11/03/268240.html 存储过程在C#中的使用(2) // 构建 SqlCommand 对象(用来返回一个结果集,而不是一个整数值), 参数为数据库连接、存储过程名、存储过程参数。          public static SqlCommand BuildQueryCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)         {             SqlCommand command = new SqlCommand(storedProcName, connection);             command.CommandType = CommandType.StoredProcedure;            foreach (SqlParameter parameter in parameters)            {                 command.Parameters.Add(parameter);             }            return command;         }          // 执行存储过程,返回结果集          public static DataSet RunProcedure( string storedProcName, IDataParameter[] parameters, string tableName)         {             SqlConnection connection = new SqlConnection (connectionString);             DataSet dataSet = new DataSet();             connection.Open();             SqlDataAdapter sqlDA = new SqlDataAdapter();             sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);             sqlDA.Fill(dataSet, tableName);             connection.Close();            return dataSet;         } // IDataParameter[]使用 从表面上看,IDataParameter[]的实例就是一个IDataParameter的数组。 而IDataParameter实际上是不能直接实例化的,所以这种数组其实很不常见, 仅仅会出现在函数的入口参数里面。且多以params的形式出现。这样做的好处 是令这个函数可以对付所有的数据库。         IDataParameter[]简单的说来,就是可以包含任何数据库参数的数组, 这些参数可以是SqlParameter或者OleDbParameter,但是,IDataParameter[] 不可以直接从SqlParameter[]转换过来。         下面是三种创建IDataParameter[]的方法:一、直接构造:IDataParameter[] parameters = new IDataParameter[] { sqlparameter1, sqlparameter2, new SqlParameter() } 二、通过ArrayList转换。ArrayList paramlist = new ArrayList()paramlist.Add( sqlparameter1 );..IDataParameter param = (IDataParameter[]) paramlist.ToArray ( typeof ( IDataParameter ) );三、通过其他Parameter类型的数组创建。SqlParameter[] _param = new SqlParameter[] { . } IDataParameter[] param = new IDataParameter[ _param.Length ];_param.CopyTo( param, 0 );

转载于:https://www.cnblogs.com/n666/archive/2009/10/21/2191064.html


最新回复(0)