iT邦幫忙

0

關於C#的SQL SERVER 讀取問題

  • 分享至 

  • xImage

各位邦友好
在A表中的B欄位原先設定為不允許NULL值
但是考量會先建立C表後將先關資料填寫至A表
但是C表沒有B欄位的值 是故我以C#寫入INSERT到A表不填寫B欄位(預設為NULL)
之後也在SQL SERVER上設定B欄位允許NULL後執行
在SSMS上可以呈現該筆B欄位為NULL的資料
在Visual Studio上執行結果卻顯示
System.Data.ConstraintException: '無法啟用條件約束。一或多個資料列的值違反非 Null、唯一或外部索引鍵條件約束。'
即便資料補齊後依樣出現相同的決果
之後以SSMS將該筆B欄位為NULL的資料刪除
不管SSMS抑或是Visual Studio都可以正常執行且呈現
麻煩各位知道怎麼處理問題的人
告知小弟 謝謝

優悠 iT邦新手 3 級 ‧ 2018-04-30 17:27:55 檢舉
可能你外來建、主見設定錯誤導致,我沒遇過無法提供更多意見
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
小魚
iT邦大師 1 級 ‧ 2018-05-01 12:26:30
最佳解答

要處理Null是很麻煩,
基本上我在建立資料表不會讓它允許Null,
而且會給他一個預設值,
即使沒有Insert也會給它值,
(如果是字串通常會預設空值'')
這樣就不用考慮Null的問題了。

0
heineleo
iT邦新手 5 級 ‧ 2025-06-10 13:08:26

我不曉得是否真的是這樣,就請指教了,我也遇到相同的問題,後來發現,我預設承接資料的Table裡面有資料,於是在程式開始的時候將Table初始化再做承接資料,就沒事了,可以先試試看~
例如:
.
.
dTemp = new DataTable(); // 初始化。
.
.
SqlDataAdapter sqlDa = new SqlDataAdapter(cmd);
sqlDa.Fill(dTemp);
.
.

我要發表回答

立即登入回答