【发布时间】:2011-07-18 10:20:04
【问题描述】:
我正在做这样的事情:
SqlParameter param = new SqlParameter("@Param", 0) { SqlDbType = SqlDbType.Int };
private void TestParam(SqlParameter param) {
string test = param.Value.ToString(); // Getting NullReferenceException here
}
但是当我这样说时,我不再得到异常:
SqlParameter param = new SqlParameter("@Param", SqlDbType.Int) { Value = 0 };
private void TestParam(SqlParameter param) {
string test = param.Value.ToString(); // Everything OK
}
谁能告诉我为什么 SqlParameter 假设 0 与 null 相同?
编辑: MSDN 在此解释:SqlParameter Constructor
【问题讨论】:
-
好的,这里解释一下:msdn.microsoft.com/en-us/library/0881fz2y%28v=VS.80%29.aspx当创建一个默认值为“0”的新SqlParameter时,你需要将它显式地转换为整数。否则,它假定您将 SqlDbType 枚举作为第二个参数传递。
标签: c# .net .net-3.5 sqlparameter