Gre*_*alk 0 c# sql-server ssms dapper
我使用返回的参数来显示bin的重量.
这是我的SQL Server存储过程;
ALTER PROCEDURE [dbo].[SumScrapBinWeight]
@ScrapBinNumber INT,
@ScrapBinWeightSUM DECIMAL(8,2) OUTPUT
AS
BEGIN
SELECT @ScrapBinWeightSUM = SUM(CalculatedWeightLbs)
FROM ScrapData
WHERE ScrapBinNumber = @ScrapBinNumber
END
Run Code Online (Sandbox Code Playgroud)
这在SSMS中工作并返回预期值,当我在C#应用程序中调用它时,我收到错误
施放无效
在最后一行.这让我感到困惑,如果我Decimal改为Int,它不会抛出错误,但它不会显示我想要显示的小数.
using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MfgDataCollector"].ToString()))
{
DynamicParameters param = new DynamicParameters();
param.Add("@ScrapBinNumber", lbl_TicketNumber.Text);
param.Add("@ScrapBinWeightSUM", dbType: DbType.Int32, direction: ParameterDirection.Output);
conn.Execute("SumScrapBinWeight", param, commandType: CommandType.StoredProcedure);
lbl_BinWeight.Text = param.Get<decimal>("@ScrapBinWeightSUM").ToString();
}
Run Code Online (Sandbox Code Playgroud)
我在哪里错了?
问题在于如何在.NET代码中配置参数:
// Note DbType.Int32
param.Add("@ScrapBinWeightSUM", dbType: DbType.Int32, direction: ParameterDirection.Output);
Run Code Online (Sandbox Code Playgroud)
您只需要使其成为合适的数据类型:
// Note DbType.Decimal
param.Add("@ScrapBinWeightSUM", dbType: DbType.Decimal, direction: ParameterDirection.Output);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |