我在一段代码中观察到一个奇怪的问题,即即席 SQL 查询没有产生预期的输出,即使它的参数与数据源中的记录匹配。我决定在即时窗口中输入以下测试表达式:
new SqlParameter("Test", 0).Value
这给出了 的结果null
,这让我摸不着头脑。似乎SqlParameter
构造函数将零视为空值。以下代码产生正确的结果:
SqlParameter testParam = new SqlParameter();
testParam.ParameterName = "Test";
testParam.Value = 0;
// subsequent inspection shows that the Value property is still 0
谁能解释这种行为?是不是故意的?如果是这样,它可能相当危险......