我有一个SQL存储过程,它将数据集返回给ASP.NET v3.5数据集。数据集中的一列被称为Attend,并且是SQL表中的一个可为空的位列。在选择该列是这样的:数据集列总是返回-1
CASE WHEN Attend IS NULL THEN -1 ELSE Attend END AS Attend
当我在查询分析器中执行的SP值返回,因为他们应该行 - 为参加值为-1是一些行,其他0,另外1人。但是,当我调试C#代码并检查数据集时,Attend列始终包含-1。
如果我选择任何其他列或常量值来参加结果总是正确的。它只是上面的SELECT字段行为奇怪。我怀疑它与位的类型有关。因此,为了测试这个,我选择了“CONVERT(int,Attend)”,但行为是一样的。
我已经尝试使用ExecuteDataset检索数据,并且我还创建了一个带有TableAdapter和DataTable的.NET数据集架构。仍然没有运气。
有没有人知道这里有什么问题?
Attend列中不存在任何负数,只是NULL,True和False。另外,更改别名没有帮助。感谢您的想法。 – Dewey 2010-08-21 22:42:38
更改数据类型的想法是尝试让您的DataSet像int列那样对待Attend列而不是位列。 – 2010-08-21 23:13:30