首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2012-09-15 
C# 调用带参数、返回值的存储过程存储过程:ALTER PROCEDURE [dbo].[p_translate]@p_transnoVARCHAR(20) , @

C# 调用带参数、返回值的存储过程
存储过程: 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;
  }

[解决办法]
SqlCommand 没有添加参数
http://www.cnblogs.com/VitoriaTang/archive/2006/08/04/467765.html
[解决办法]
你可以在把.net中参数的值带到oracle中,用dbms_output.put_line('')一步步输出值,看哪里没有输出,就是哪里有问题了。
[解决办法]
大概是这个意思吧,另外存储过程也可以调试看看。

C# code
       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;        } 

热点排行