存储过程在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
转载请注明原文地址: https://win8.8miu.com/read-1483128.html