如何适当地调用允许空值的列

时间:2013-01-22 09:30:19

标签: c# sql tsql datatable

我有一个包含以下列的表

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

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

我的问题是如何恰当地选择这些空列?

P.S。此错误与使用相同主键返回相同查询无关,因为我的表中只有一个条目:)

1 个答案:

答案 0 :(得分:2)

我假设您使用强类型DataSet来获取数据,对不对?

您的DataSet不是由您的数据库引发此错误。

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

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

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