我有一个DataTable(通过DataGridView显示),并希望重用它来手动填写不同的数据.所以工作流程是:
每次我需要重新填充DataTable时,我都会:
要实现第0步,我只需执行:DataGridView.DataSource = null.
为了实现第1步,我调用了DataTable.Clear(),DataTable.Rows.Clear()和DataTable.Columns.Clear().
为了实现第3步,我调用DataGridView.DataSource = DataTable.
第2步以正常方式完成,我跳过代码.
每当使用新内容更新DataGridView时,如果我单击DataGridView列进行排序,下次更新DataTable时,当我尝试添加新行时,我将在步骤2中获得空引用异常.但是,如果我从不单击DataGridView列进行排序,一切正常.
我想这与排序有关.但我不知道是什么原因导致null引用异常.DataTable是否可能尝试搜索旧内容中的某些键但无法找到它?由于步骤1当然无法找到旧内容.什么是清除旧DataTable内容的正确方法,以便在我填写新内容时它永远不会引用旧内容?
谢谢.
DataGridView的数据绑定绑定到表(通过a DataView); 你不能把它从桌子底下拉出来,并期望它继续工作.
当您按列排序时,网格会要求DataView更改其排序顺序,该顺序失败,因为该列不存在anymoe.
您应该创建一个新的DataTable.
| 归档时间: |
|
| 查看次数: |
2059 次 |
| 最近记录: |