2017-07-14 159 views
-1

我有以下代碼:允許爲datagridview設置NULL?

DataTable dt = new DataTable(); 

SQLiteDataReader reader = mycommand.ExecuteReader(); 
dt.Load(reader); 

它要求一個例外:

System.Exception的:「未能啓用約束。一行或多行 包含違反非空,唯一或外鍵約束的值。'

因爲在reader我得到了列爲NULL元素的對象。如何允許DataGridView接受NULL單元值?

+0

你給我們這麼小的信息,我們需要看到我們可以嘗試的更大一部分代碼。 – MiOnIs

+0

根據例外情況,您的問題與DataGridView(WINFORMS)無關。它涉及到ADO.NET – Bahrom

回答

2

老實說,需要更多關於您的特定問題的信息才能徹底解答您的問題,但以下代碼段將處理空值。請務必檢查this MSDN postthis StackOverflow post以確定它們是否是更相關的問題,並且在考慮到問題的一般範圍的情況下還可能有所幫助。它指出:

當用該細胞風格一個DataGridView電池具有DBNull.Value或空值或用戶編輯的單元格,按下CTRL + 0,DataGridView控件顯示NullValue屬性的屬性值。當用戶使用此單元格樣式編輯單元格並輸入此屬性的值或按下CTRL + 0時,控件將單元格值設置爲DataSourceNullValue屬性的值,或者在DataSourceNullValue爲DBNull.Value且單元格ValueType爲一個參考類型。以編程方式設置DataGridViewCell.Value屬性時不會發生此轉換。

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { 
    String value = e.Value as string; 
    if ((value != null) && value.Equals(e.CellStyle.DataSourceNullValue)) { 
     e.Value = e.CellStyle.NullValue; 
     e.FormattingApplied = true; 
    } 
} 

請務必做一些繁重的研究和發佈,使人們可以更有益的,當是徹底與您的問題。

例如,可以從查看您的代碼以及例外情況中推斷出您將查詢的表不允許空值。

+0

在填充DataTable源時發生錯誤,而不是在格式化表中的數據之後發生。 – OPV