2009-10-21 40 views
3

我目前正在C#下編寫一個項目,並遇到問題。我將簡要介紹一下我的表單:用DataRow DataBinding - 問題

它在窗體的下半部分具有單行選擇的datagridview,並且是隻讀的。在窗體的上半部分,我有各種組件,這些組件是數據綁定到datagridview上的選定行的。我這樣做是因爲數據庫中有太多列要顯示在datagridview中,而不會嚴重影響UI。這工作正常,格式和解析事件被正確調用。

我有一個添加新記錄按鈕,將上半部分的控件重新綁定到新的數據行(這不是數據表的一部分),這就是我遇到問題的地方。首先,當直接綁定到數據行時,似乎控件不會像綁定到數據表時那樣對DBNull值感到滿意。但是,沒關係,我只是在綁定它之前爲默認值分配了新行。但是,似乎格式和分析事件直接綁定到行時出於某種原因而未被觸發,並且我無法解決原因?我需要這些的主要原因是我有一個日期值列,理想情況下需要爲空(從UI角度來看空白),所以我分配DateTime.MinValue作爲默認值的新行,然後我在格式上尋找這個/解析事件並執行nessessary轉換。

我想我的主要問題是爲什麼綁定到數據行時引發DBNull異常時綁定到具有相同的空值在同一列的數據表引發沒有例外,列約束有'允許空'。我的另一個問題是,爲什麼當一個組件綁定到數據行時不會觸發Format/Parse事件?

回答

1

我已經有相當多的困難,將datagridview提交到提交中,並且在Google的一些Google或者想出了一個黑客或者解決方法之後。我從你的評論猜測,你的列中的空值和導致異常的DBNull之間必定有一些區別?

你的一些源代碼可能有助於在這種情況下進一步嘗試和幫助你。

(PS我知道這更是一個比一個答案評論,但我不能添加評論這樣做不下來選我爲請至少說明爲什麼)

+0

沒問題,這是一個相當現在已經發現了數據表處理空值的方式有點時髦,我猜想在.NET有Nullable類型/泛型之前,tehy就被構想出來了。因此,我已經離開它們進入POCO,並且減輕了很多壓力。 – Marlon 2011-08-10 10:55:58