我有一個DataTable(通過DataGridView顯示),並希望重用它來手動填寫不同的數據。因此,工作流程是:如何重用DataTable在C#中的不同數據源?
每當我需要重新填充數據表,我做的:
- 脫開從DataGridView中的數據表。
- 清除DataTable內容。
- 手動添加DataColumns和DataRows到DataTable。
- 用DataGridView再次鉤住DataTable。
要實現步驟0,我只需:DataGridView.DataSource = null。
爲了實現步驟1,I調用DataTable.Clear(),DataTable.Rows.Clear()和DataTable.Columns.Clear()。
爲了實現步驟3中,我請DataGridView.DataSource =數據表。
步驟2在正常方式完成,我跳過代碼。每當DataGridView更新爲新內容時,如果我點擊DataGridView列進行排序,下次更新DataTable時,當我嘗試添加新行時,將在步驟2中獲得空引用異常。但如果我從不點擊DataGridView列進行排序,所有工作正常。
我猜它是與排序。但我不知道是什麼導致了空引用異常。 DataTable是否有可能嘗試搜索舊內容中的某些鍵但找不到它?由於第一步當然無法找到舊內容。清理舊的DataTable內容的正確方法是什麼?因此,當我填入新內容時,它從不提及舊內容?
謝謝。
爲什麼不只是創建一個新的DataTable?通過增加這種複雜性你會得到什麼? – 2011-01-26 02:02:43