【发布时间】:2016-05-09 14:05:39
【问题描述】:
我在尝试执行存储过程时遇到错误。
C# 属性 - 我无法更改:
private decimal? a;
public decimal? A
{
get { return a; }
set { a = value; }
}
我可以更改的 C# DAC 层:
if (A.HasValue)
dict.Add("A", A.Value);
else
dict.Add("A", null);
在存储过程输入-->我不能改变
@A decimal(6,0)
在没有异常和数据丢失的情况下进行转换的最佳方法是什么?我需要为@B decimal(8,2)做同样的事情
数据库列接受上述格式的空值和小数。
我得到的错误:
将数据类型数字转换为十进制时出错
【问题讨论】:
-
dict.Add("A", A.HasValue.Value);无法编译。我想你想使用dict.Add("A", A.Value) -
A.HasValue.Value,什么?为什么dict.Add("A", A)不能简单地工作?正如您所写,无论如何您都没有对null进行任何特殊处理。 -
@TimSchmelter,谢谢,有没有办法从 c# 代码格式化输入的十进制数
-
@Rahul Chowdhury 您需要重新编写此问题并提供更多信息,以便人们帮助您。现在这个问题没有意义。完全不清楚您提到的字典与整个问题有什么关系。
-
@user469104,谢谢,我会重写它。这本字典正在添加 sql 参数。在这里,我想从 c# 代码格式化一个小数,所以没有从 DB 端抛出异常,现在看来 store proc 没有以正确的格式获取输入
标签: c# .net type-conversion