C#调用存储过程简单完整例子

文章来源:http://blog.youkuaiyun.com/21aspnet/archive/2007/03/21/1535751.aspx作者:清清月儿

CREATE PROC P_TEST
@Name VARCHAR ( 20 ),
@Rowcount INT OUTPUT
AS
BEGIN
SELECT * FROM T_Customer WHERE NAME = @Name
SET @Rowcount = @@ROWCOUNT
END

GO

存储过程调用如下:

DECLARE @i INT
EXEC P_TEST ' A ' , @i OUTPUT
SELECT @i

-- 结果

/**//*
NameAddressTel
----------------------------------------
AAddressTelphone

(所影响的行数为1行)
-----------
1
(所影响的行数为1行)
*/

C#代码:(用到两个测试控件,DataGrid1(用于显示绑定结果集合),Lable(用于显示存储过程返回单值)


// 添加数据库引用
using System.Data.SqlClient;
// ......

StringDBConnStr;
DataSetMyDataSet
= new DataSet();
System.Data.SqlClient.SqlDataAdapterDataAdapter
= new System.Data.SqlClient.SqlDataAdapter();
DBConnStr
= System.Configuration.ConfigurationSettings.AppSettings[ " ConnectString " ];
System.Data.SqlClient.SqlConnectionmyConnection
= new System.Data.SqlClient.SqlConnection(DBConnStr);
if (myConnection.State != ConnectionState.Open)
{
myConnection.Open();
}
System.Data.SqlClient.SqlCommandmyCommand
= new System.Data.SqlClient.SqlCommand( " P_Test " ,myConnection);
myCommand.CommandType
= CommandType.StoredProcedure;

// 添加输入查询参数、赋予值
myCommand.Parameters.Add( " @Name " ,SqlDbType.VarChar);
myCommand.Parameters[
" @Name " ].Value = " A " ;

// 添加输出参数
myCommand.Parameters.Add( " @Rowcount " ,SqlDbType.Int);
myCommand.Parameters[
" @Rowcount " ].Direction = ParameterDirection.Output;
myCommand.ExecuteNonQuery();
DataAdapter.SelectCommand
= myCommand;
if (MyDataSet != null )
{
DataAdapter.Fill(MyDataSet,
" table " );
}
DataGrid1.DataSource
= MyDataSet;
DataGrid1.DataBind();

// 得到存储过程输出参数
Label1.Text = myCommand.Parameters[ " @Rowcount " ].Value.ToString();
if (myConnection.State == ConnectionState.Open)
{
myConnection.Close();
}
运行以上代码即可(返回记录集合和存储过程返回值)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值