c#中 调用带输出参数output的存储过程,如何获得该返回值?

我的存储过程标题如下:
ALTER proc [dbo].[brpbomweight] @cinvcode varchar(50), @dec3 decimal(18,6) output
as

我用以下语法可以输出值为 0.005623

declare @dec3 decimal(18,6) exec brpbomweight '1201SPE13601', @dec3 output
print @dec3

我用以下C#代码,输出@dec3永远都是 0,不知道是什么原因,高人请指教

 

string strConn = command.Class1.cn;

 

            SqlConnection conn = new SqlConnection(strConn);

 

            conn.Open();

 

            SqlCommand cmd = new SqlCommand("brpbomweight", conn);

 

            cmd.CommandType = CommandType.StoredProcedure;

 

            //输入参数

 

            SqlParameter param1 = new SqlParameter("@cinvcode", SqlDbType.VarChar, 50);

 

            param1.Value = "1201SPE13601";                             cmd.Parameters.Add(param1);        

 

            //输出参数

 

            SqlParameter param = new SqlParameter("@dec3", SqlDbType.Decimal);

 

            param.Direction = ParameterDirection.Output;

 

            cmd.Parameters.Add(param);             //执行存储过程

 

            cmd.ExecuteNonQuery();

 

            conn.Close();

 

            //输出值             MessageBox.Show(param.Value.ToString());

料青山看我应如是
浏览 846回答 17
17回答

临摹微笑

差别好像 就是rtnval.Direction = ParameterDirection.ReturnValue; 这一句,不过我改成这样子就会报错,报错的文字 是 过程或函数 'brpbomweight' 需要参数 '@dec3',但未提供该参数。

偶然的你

SqlParameter param = new SqlParameter("@dec3", SqlDbType.Decimal); 把@dec3中的@去掉试试

守候你守候我

去掉了也是一样

慕容森

 数据库

慕婉清6462132

@Snail的梦: 不行,试过了没有用

大话西游666

@Snail的梦: 不行,试过了没有用,有没有邮箱地址发给你看你一下,谢谢

30秒到达战场

@zhengyingcan: sunlarylv@163.com

波斯汪

@zhengyingcan: 我发到你邮箱了,你试试能不能行。

鸿蒙传说

cmd.Parameters["@dec3"].Value.ToString(); 试试这个

慕森王

你确定你在你的存储过程那里对那个 @dec3 进行了 正确的 赋值操作码? 有实际上跑过那个存储过程没有?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server