C# datagridview 数据源错误的问题

一般情况下,程序不会出现错误,偶尔会发生数据源错误。这里,DataGridView的数据源是一个DataTable,DataTable会实时更新。问题:1、如下情况,会不... 一般情况下,程序不会出现错误,偶尔会发生数据源错误。
这里,DataGridView的数据源是一个 DataTable ,DataTable 会实时更新。
问题:
1、如下情况,会不会可能引起数据源错误。
在对 数据源DataTable 进行更新修改的时候,DataGridView试图获取 DataTable的内容,引起冲突。
如果是这种情况,那用 lock 是否可以解决?(如下)
// 获取 datatable
DataTable dt {
get{
lock(lockHelper){
return _dt;
}
}
}
//修改datatable
void UpdateDataTable(){
lock(lockHelper){
// ... 对 datatable 进行数据更新
}
}
2、根据后面的错误信息(绘制datagridview时出错,而且触发了 datagridview 数据源错误(datagridview有一个数据源错误的事件)),可否判断是其它什么原因引起的错误,请告知。

3、如果不可避免的发生了 数据源错误,可否用代码捕捉(try catch)到,不弹出系统提示框。

-------------------------------------------
错误信息

值不能为 null。
参数名: key
Display

************** 异常文本 **************
System.NullReferenceException: 未将对象引用设置到对象的实例。
在 System.Windows.Forms.DataGridViewCell.GetEditedFormattedValue(...)
在 System.Windows.Forms.DataGridViewCell.PaintWork(...)
在 System.Windows.Forms.DataGridViewRow.PaintCells(...)
在 System.Windows.Forms.DataGridViewRow.Paint(...)
在 System.Windows.Forms.DataGridView.PaintRows(...)
在 System.Windows.Forms.DataGridView.PaintGrid(...)
在 System.Windows.Forms.DataGridView.OnPaint(...)
... ...
==补充=============================
我的建议:
1、加 lock
2、订阅 DataGridView 的 DataError事件, 当数据源出错时,进行必要的恢复刷新处理。重要的是,阻止异常抛出:args.ThrowException = false;
参考:
https://msdn.microsoft.com/zh-cn/library/system.windows.forms.datagridview.dataerror.aspx
展开
 我来答
玩转数据处理
2015-11-25 · 数据处理,Python,dotnet
玩转数据处理
采纳数:1613 获赞数:3792

向TA提问 私信TA
展开全部
很明显当DataTable为NULL时肯定报错嘛,加个判断试试
if (DataTable != Null) 再给 DataGridView
更多追问追答
追问
不是 datatable 为 null 的问题。datatable 不为空。
datatable 要不断更新,datagridview实时显示,运行过程中datagridview偶尔会出现 datasource错误的问题.
追答
那就是其他对象为null而你却使用到该对象了,断点调试看看哪里为null了。
威孚半导体技术
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层... 点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式