C#中会用存储过程的返回值

来源:互联网 发布:魅族mx4系统下载软件 编辑:程序博客网 时间:2024/05/16 15:16

C#中会用存储过程的返回值

1,用output关键字声明的参数。

    sql脚本:


CREATE PROC proc_name
(@parameter1 
int OUTPUT,[])
as
sqlstatement

     C#


cmd.Parameters.Add(
"@Parameter1",SqlDbType.Int);
cmd.Parameters[
"@Parameter1"].Direction=ParameterDirection.OutPut;
cmd.Execute
***();//任何执行方式
str=cmd.Parameters["@Parameter1"].value.ToString();

OUTPUT参数不仅可以传递输出值,也可以为其指定输入值

2,返回代码(proc中的return语句)

 返回代码与return关键字一样都是可选的。


cmd.Parameter.Add(
"@ret",SqlDbType.Int).Direction=ParameterDirection.ReturnValue;
cmd.Execute
***();
int ret=int.Parse(cmd.Parameters["@ret"].Value.ToSting());

3,游标返回类型(VARYING关键字),返回类型为非标量值,因此可以返回多个值(结果集)。

在ADO.NET中,不能是用返回游标的存储过程,只能在SQL脚本里用。

4,影响行数计数。

记录sql语句所影响的行数,通常无用。

SET NOCOUNT ON 不返回计数,将大量减少网络流量,提高性能。(此子句也可用于触发器等等中)

SET NOCOUNT OFF 返回计数。

5,SELECT结果集。这个返回是与return,output等返回相独立的。

proc每次执行select语句都将返回结果,因此可能返回多个结果集。

联想SqlDataReader.NextResult()方法,用于从一个结果集移到下一个结果集。

而SqlDataReader.Read()是在一个结果集的行间做前向遍历。

 

原创粉丝点击