Kri*_*ota 6 c# sql-server stored-procedures output-parameter sql-server-2008
我正在使用输出参数从存储过程返回值.
存储过程中的声明是: @GrandTtl DECIMAL(19,3) OUT
该SELECT查询:
SET @GrandTtl = (SELECT TOP 1 Bill_Amount
FROM Tbl_Restaurant_Kitchen_Order_Bill_Details
WHERE Bill_Number = @billno)
Run Code Online (Sandbox Code Playgroud)
例如,select查询返回值,4087.67然后4088从SQL Server到C#返回输出参数值.
这是调用存储过程的C#代码:
SqlCommand cmd = new SqlCommand("Sp_RestCC_BillDetails", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter OutParam26 = cmd.Parameters.Add("@GrandTtl", SqlDbType.Decimal,19);
da = new SqlDataAdapter(cmd);
con.Open();
da.Fill(ds, "dtRestCC_Items");
con.Close();
objRCCBEL.GrandTtlOut = Convert.ToDecimal(cmd.Parameters["@GrandTtl"].Value);
Run Code Online (Sandbox Code Playgroud)
Ric*_*iwi 14
您需要将C#参数设置为
SqlParameter parm = new SqlParameter("@GrandTtl", SqlDbType.Decimal);
parm.Precision = 19;
parm.Scale = 3;
parm.Direction = ParameterDirection.Output;
cmd.Parameters.Add(parm);
Run Code Online (Sandbox Code Playgroud)
如果未设置比例,则默认值为0. Ref:SqlParameter.Scale属性
要解析Value的小数位数.默认值为0.
| 归档时间: |
|
| 查看次数: |
8579 次 |
| 最近记录: |