强类型数据集,列DBNull

时间:2014-05-27 14:42:37

标签: sql-server sql-server-2008 stored-procedures strongly-typed-dataset

我有一个可以运行的存储过程并返回一些列,包括“Column_A”。

当我在SQL Manageemnt Tools中执行Stored Procudure时,我能够连续获得Column_A值。

当我尝试在类型化数据集中预览同一行时,Column_A始终为null。

任何想法可能出错?

2 个答案:

答案 0 :(得分:1)

强类型数据集参与规则。

The column name must be EXACT.  

The data-type should match.

The column_names order should match.  Which also means the total number of columns in the result query should equal the number of columns in the datatable definition.

Aka,如果你有

Select e.LastName, e.FirstName, e.SSN from dbo.Employee

你的强大数据集应该是

LastName (string)
FirstName (string)
SSN (string)

它不能像以下任何一种偏差:

Last_Name (string)
FName (string)
SSNumber (string)

如果strong-dataset-table__column不允许" nulls",则必须在过程中编写虚拟值。

示例:

Select e.LastName, e.FirstName, IsNull(e.SSN, '') as SSN from dbo.Employee

每当我遇到其中一个问题时,我总会发现我违反了其中一条小规则。

答案 1 :(得分:0)

因为我自己添加了专栏," Source"未设置DataColumn的属性,因此设置它或换句话说将其映射到右列,修复了问题。