0

次の列を持つテーブルがあります

EndDate      DateTime AllowNulls
IsApproved   Bit      AllowNulls

選択クエリをテーブルに送信すると、これら 2 つの列でエラーが発生します。

これが私の選択クエリだとしましょう。

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

表示されるエラー: 制約を有効にできませんでした。1 つ以上の行に、NULL 以外、一意、または外部キーの制約に違反する値が含まれています

私の質問は、これらの null 列を適切に選択するにはどうすればよいですか?

PSこのエラーは、テーブルにエントリが1つしかないため、同じ主キーで同じクエリを返すこととは関係ありません:)

4

1 に答える 1

2

厳密に型指定された DataSet を使用してデータを取得していると思いますが、そうですか?

このエラーはデータベースではなく、DataSet.

この方法で例外の原因を確認できます。

  • DataTable/を埋める前にブレークポイントを設定しますDataSet
  • デバッガーのクイック ウォッチ ウィンドウで実行します。
  • 実行して、設定されているDataTable.GetErrorsすべての行を取得しますRowError
  • 1つまたは複数の行のこのプロパティを調べて、実際の問題を確認してください

その間、sql-server の制約を変更したため、構成ウィンドウからテーブルを更新する必要があるかもしれません。

于 2013-01-22T09:36:00.810 に答える