[已解决] 设置无效字段为-1 时,引发的 DataGridView DataError

由于问题一句话说不清。所以标题里也没写明白。大概情况是这样。我一直使用dotNetBar控件来做UI,其中的DataGridView很常用。过去一直有发现DataError的错误,通过截取消息暂时屏蔽。

今天研究DataError的原因,发现一个问题,出错列的格式是DataGridViewComboBoxCell,列是绑定到一个数据表一般是用来做连接表的,比如用户ID 通过绑定显示成用户名等。

我一般这时将不存在的ID设置成-1,这种方式在来源与普通下拉框绑定数据的处理方式。但在DataGridView里就产生了一个DataError。

通过多次尝试,最后的解决是将改字段对应的类型设置成可空类型。比如ID 是int 的类型的,这个地方应该用int?,如果是数据库表里,应该设计成允许NULL的类型。

这时DataGridView会按照NULL来正确处理绑定问题。

想来也是,-1 对数据库表来说,是一个错误的key当然会引起数据错误了。

以后设计数据表结构和DataGridView的时候,一定要注意这个问题了。

原文地址:https://www.cnblogs.com/Samnew/p/6366572.html