C# 调用带参数、返回值的存储过程

bone251287 2012-08-28 02:51:12
存储过程: ALTER PROCEDURE [dbo].[p_translate]
@p_transno VARCHAR(20) ,
@p_usrid varchar(8) ,
@p_return varchar(50) OUTPUT

现需要获取@p_return 值,如何操作?看网上许多的例子,自己调用还是有问题,刚接触C#,也不太会调试,望大神给出详细步骤,最好能像下面的函数一样返回一个数值
public decimal sumCash()
{
decimal sum = 0;
SqlConnection con = Connection.Conn();
try
{
con.Open();
string sql = string.Format("select sum(amount) from trans ");
SqlCommand cmd1 = new SqlCommand(sql, con);
object sum = cmd1.ExecuteScalar();
sum = Convert.ToDecimal(sum);
}
catch (Exception ex)
{
Response.Write("<script language='javascript'>alert('" + ex.Message + "');</script>");
}
return sum;
}
...全文
193 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shizhu820228 2012-08-28
  • 打赏
  • 举报
回复
大概是这个意思吧,另外存储过程也可以调试看看。

public decimal sumCash()
{
decimal sum = 0;
SqlConnection con = Connection.Conn();
try
{
con.Open();
SqlCommand cmd1 = con.CreateCommand();
cmd1.CommandType = CommandType.StoredProcedure;

SqlParameter parameter = new SqlParameter("@p_return", 0);
parameter.Direction = ParameterDirection.Output;
cmd1.Parameters.Add(parameter);
cmd1.ExecuteNonQuery();
sum = Convert.ToDecimal(cmd1.Parameters["@p_return"].Value.ToString());

}
catch (Exception ex)
{

}
return sum;
}
Bule 2012-08-28
  • 打赏
  • 举报
回复
你可以在把.net中参数的值带到oracle中,用dbms_output.put_line('')一步步输出值,看哪里没有输出,就是哪里有问题了。
bone251287 2012-08-28
  • 打赏
  • 举报
回复
我只想要一个返回值,不是一个集合,用来判断用的
bone251287 2012-08-28
  • 打赏
  • 举报
回复
这个不适重点,重点是存储过程的调用方法....下面的函数我给改动过,只是个例子而已
bdmh 2012-08-28
  • 打赏
  • 举报
回复

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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