0

我有一个包含以下列的表格

EndDate      DateTime AllowNulls
IsApproved   Bit      AllowNulls

当我向我的表发送选择查询时,这两列会产生错误。

可以说这是我的选择查询。

SELECT S.Name, S.Surname,
     CASE 
        WHEN S.EndDate IS NOT NULL AND S.IsApproved = 1 THEN 'Left' 
        WHEN S.EndDate IS NOT NULL AND S.IsApproved = 0 THEN 'Waiting' 
        WHEN S.EndDate IS NULL AND S.IsApproved IS NULL THEN 'Joined' 
        ELSE '' 
      END AS Durumu
FROM STUDENT S

我收到的错误: 无法启用约束。一行或多行包含违反非空、唯一或外键约束的值

我的问题是如何正确选择这些空列?

PS这个错误与返回具有相同主键的相同查询无关,因为我的表中只有一个条目:)

4

1 回答 1

2

我假设您正在使用强类型数据集来获取数据,对吗?

此错误不是由您的数据库引发的,而是由您的DataSet.

您可以通过这种方式检查导致异常的原因:

  • DataTable在填充/之前设置断点DataSet
  • 在调试器的快速监视窗口中执行它
  • 执行DataTable.GetErrors以获取RowError设置的所有行
  • 查看一行或多行的此属性以查看实际问题

也许您只需要通过配置窗口刷新表,因为同时您已经更改了 sql-server 中的约束。

于 2013-01-22T09:36:00.810 回答