0

tableadapter の update メソッドを使用してテーブルを更新しようとしていますが、次のエラーが発生します。

値 NULL を列 'isCorrect'、テーブル 'info' に挿入できません。列はヌルを許可しません。更新は失敗します。
ステートメントは終了されました。

ただしAllowDBNull、 isCorrect 列のプロパティを True に設定しました。

この場合、更新は isCorrect とは関係ありません。このフィールドの元の値はまったく変更されていないためです (つまり、ほとんどの場合、startDate と endDate を更新したいだけです。また、isCorrect を更新する必要があるのは 1 つのケースだけです)。フィールドも)。私の更新クエリは次のようになります。

UPDATE info
SET userID = @userID, startDate = @startDate, endDate = @endDate, isCorrect = @isCorrect
WHERE (userID = @Original_userID) AND (startDate = @Original_startDate) AND (endDate = @Original_endDate) AND (isCorrect = @Original_isCorrect)

この問題を解決するにはどうすればよいですか?

編集

このために、私はスケジューラ コントロールを使用していますが、更新のためにこれらの関数を呼び出しています。testsTableAdapter.Update(testsDataSet);
this.testsDataSet.AcceptChanges();

4

4 に答える 4

0

情報テーブル(データベース)の設計を確認し、「isCorrect」列に対してチェックボックスをオンにしてNullを許可しているかどうかを確認します。

于 2013-02-14T12:07:55.043 に答える
0

ID列でこの問題が発生しました。IDENTITY(1,1) を使用してこの ID 列を作成することで問題を解決しました。

同じ設定ではないかもしれませんが、ID 列で同じ問題を抱えている他の人に役立つかもしれません。

于 2013-10-10T09:09:01.580 に答える
0

これはあなたを助けるかもしれません:

DataTableで情報を見つけて、列DataSetを選択しisCorrectます。次に F4 を押してNullValueプロパティを検索し、 に設定しNullます。

この方法で解決するかどうか教えてください。

于 2013-02-14T12:09:12.623 に答える