应用程序端如何获得存储过程用Return 返回的数据?

zhiguo2008 2008-07-12 10:35:11
我写有存储过程:
   alter proc g_modifyWealth
@userID int,
@points int
as
begin tran
update ....
if @@error<>0
goto error
insert into ...
if @@error<>0
goto error
commit tran
return 0

error:
rollback tran
return 1

go
調用:

declare @i int
exec @i=g_modifyWealth 參數1,參數2
select @i--1時失敗,0時成功


如何在asp.net中获得这个@i值,SqlCommand.Parameter.add(?)怎么写?

...全文
130 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhiguo2008 2008-07-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 seesea125 的回复:]
create producure execproc
declare @i int output
exec @i=g_modifyWealth 參數1,參數2
select @i--1時失敗,0時成功
.............

string insertuser = @"execproc";//存储过程名字
SqlCommand cm = new SqlCommand();
cm.Connection = MyConnection51;
cm.Parameters.Add(new SqlParameter("@i", SqlDbType.Int, 4, ParameterDirection.Output, true, 10, 0, "", DataRowVersion.Proposed, _id));
cm.Com…
[/Quote]
是不是有点问题啊?我的存储过程中没有定义什么@i 输出参数啊,只有return 语句,如何获得return 的返回值呢?
seesea125 2008-07-12
  • 打赏
  • 举报
回复
create producure execproc
declare @i int output
exec @i=g_modifyWealth 參數1,參數2
select @i--1時失敗,0時成功
.............

string insertuser = @"execproc";//存储过程名字
SqlCommand cm = new SqlCommand();
cm.Connection = MyConnection51;
cm.Parameters.Add(new SqlParameter("@i", SqlDbType.Int, 4, ParameterDirection.Output, true, 10, 0, "", DataRowVersion.Proposed, _id));
cm.CommandText = insertuser;
cm.CommandType = CommandType.Text;
cm.ExecuteNonQuery();
int _id;
_id = (Int32)cm.Parameters["@i"].Value;
WDFrog 2008-07-12
  • 打赏
  • 举报
回复
object obj=xxx.ExecuteXXX("xxxxx")
建议你写成
output 类型的

Set retVar=0
return
amandag 2008-07-12
  • 打赏
  • 举报
回复
SqlConnection cn = new SqlConnection("server=.;uid=sa;pwd=;database=yourDB");
SqlCommand cmd = new SqlCommand("g_modifyWealth", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@ReturnValue", SqlDbType.Int);
cmd.Parameters["@ReturnValue"].Direction = ParameterDirection.ReturnValue;
cmd.Parameters.AddWithValue("@userID ", yourUserID);
cmd.Parameters.AddWithValue("@points ", yourPoints);
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();

Label1.Text = cmd.Parameters["@ReturnValue"].Value.ToString();


切计存储过程返回值这个参数必须放在第一个,名字无所谓,最好在连接关闭后得到存储过程的返回值
tomtory 2008-07-12
  • 打赏
  • 举报
回复
ParameterDirection.ReturnValue

不是Output吧

62,052

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧