您的位置:首页 > 编程语言 > C#

C#.net中三层结构中怎样调用存储过程

2011-12-11 18:33 295 查看
下面的CmdObj.是定义的SqlCommand对象

1、获得存储过程中return语句返回的整个存储过程函数的返回值:

//获得存储过程return的值,定义一个参数,指明其作用是接受return的值
CmdObj.Parameters.Add("RETURN_VALUE",SqlDbType.Int).Direction=ParameterDirection.ReturnValue;
通过获取该参数的方式最终获得return返回的值
intreValue=int.Parse(CmdObj.Parameters["RETURN_VALUE"].Value.ToString());

2、获得存储过程输出参数的值:

定义sql的参数,指定类型是输出
CmdObj.Parameters.Add("@outValue",SqlDbType.VarChar).Direction=ParameterDirection.Output;

获得输出参数的值
stringoutValue=CmdObj.Parameters["@outValue"].Value.ToString();

总结,关键地方就是指明参数的Direction属性,使用ParameterDirection来指定,可以指定4种类型,
输入,
输出,
既是输入又是输出,
接受returns


(1)执行一个没有参数的存储过程的代码如下:

SqlConnectionconn=newSqlConnection(“connectionString”);
SqlDataAdapterda=newSqlDataAdapter();
da.selectCommand=newSqlCommand();
da.selectCommand.Connection=conn;
da.selectCommand.CommandText="NameOfProcedure";
da.selectCommand.CommandType=CommandType.StoredProcedure;
(2)执行一个有参数的存储过程的代码如下

SqlConnectionconn=newSqlConnection(“connectionString”);
SqlDataAdapterda=newSqlDataAdapter();
da.selectCommand=newSqlCommand();
da.selectCommand.Connection=conn;
da.selectCommand.CommandText="NameOfProcedure";
da.selectCommand.CommandType=CommandType.StoredProcedure;
param=newSqlParameter("@ParameterName",SqlDbType.DateTime);
param.Direction=ParameterDirection.Input;
param.Value=Convert.ToDateTime(inputdate);
da.selectCommand.Parameters.Add(param);
若需要添加输出参数:

param=newSqlParameter("@ParameterName",SqlDbType.DateTime);
param.Direction=ParameterDirection.Output;
param.Value=Convert.ToDateTime(inputdate);
da.selectCommand.Parameters.Add(param);
若要获得参储过程的返回值:

param=newSqlParameter("@ParameterName",SqlDbType.DateTime);
param.Direction=ParameterDirection.ReturnValue;
param.Value=Convert.ToDateTime(inputdate);
da.selectCommand.Parameters.Add(param);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: