读书人

存储过程返回值的一个小疑点

发布时间: 2012-01-13 22:43:30 作者: rapoo

存储过程返回值的一个小问题
//存储过程
alter proc test
@t int output
as
set @t=6
go
drop proc test

//调用代码
SqlCommand cmdPro = new SqlCommand( "test ", con);
cmdPro.CommandType = CommandType.StoredProcedure;

SqlParameter sqlpar;
sqlpar = cmdPro.Parameters.Add( "@i ", SqlDbType.Int);
sqlpar.Direction = ParameterDirection.ReturnValue;
//这句错误,未将对象引用设置到对象的实例
MessageBox.Show(cmdPro.Parameters[ "@i "].Value.ToString());
关键是取不到返回的值,真是急呀,


[解决办法]
修改一:

sqlpar.Direction = ParameterDirection.ReturnValue;
改为
sqlpar.Direction = ParameterDirection.Output;

修改二:
需要在执行完毕后再去访问输出参数的值。
[解决办法]
try..

SqlParameter sqlpar;
sqlpar = cmdPro.Parameters.Add( "@i ", SqlDbType.Int);
sqlpar.Direction = ParameterDirection.Output;
cmdPro.Parameters.Add(sqlpar);//将参数添加到命令对象

[解决办法]
sorry..

SqlParameter sqlpar = new SqlParameter( "@i ", SqlDbType.Int);
sqlpar.Direction = ParameterDirection.Output;
cmdPro.Parameters.Add(sqlpar);//将参数添加到命令对象

[解决办法]
修改存储过程也可:
create proc test
@t int output
as
set @t=6
return 6
go

[解决办法]
帮顶了 !
[解决办法]
TO:这样不已经添加了吗?


是的,刚开始看错了..

现在问题解决了吗?
[解决办法]
还是说点:

为什么执行完了 就删除了呢

那样会找到存储过程么...
[解决办法]
SqlParameter sqlpar;
sqlpar = cmdPro.Parameters.Add( "@i ", SqlDbType.Int);
sqlpar.Direction = ParameterDirection.Output;
cmdPro.Parameters.Add(sqlpar);

读书人网 >C#

热点推荐