2013-02-14 58 views
0

我想更新表,採用更新方法從我的TableAdapter,但我正在逐漸休耕錯誤:TableAdapter的更新失敗:不允許爲空

Cannot insert the value NULL into column 'isCorrect', table 'info'; column does not allow nulls. UPDATE fails.
The statement has been terminated.

但是我沒有設置AllowDBNull屬性爲isCorrect列爲True。

更新無關與isCorrect在這種情況下,因爲該字段的原始值不會發生任何變化(意爲大多數情況下,我只是想更新起始日期和結束日期;只有一個情況下,我需要以更新isCorrect字段)。我的更新查詢看起來是這樣的:

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();

+0

請顯示您執行的代碼。 – 2013-02-14 12:00:06

回答

0

檢查的信息表(數據庫)設計&驗證是否已勾選「isCorrect」列的複選框以允許空值。

0

這可能會幫助您:

查找您DataSet的信息DataTable並選擇isCorrect列。然後按F4並找到NullValue屬性並將其設置爲Null

讓我知道它是否能解決這個問題。

0

您的原件isCorrect在這裏不是問題,請檢查您的新的isCorrect值是否爲空。您可以在執行tableadapter方法之前插入斷點並檢查傳遞給表適配器的值。因爲如果你的表不允許空值,當你調用AcceptChange方法時,它會拋出一個異常。

0

我有一個ID列的這個問題。 我通過創建此ID列解決ist:IDENTITY(1,1)

Maby不一樣的設置,但它可以幫助其他與ID列相同的問題。

相關問題