0

我目前有一个工作程序,它在运行时给我一个无害但令人讨厌的错误。我有一个显示 SQL 表的选定内容的 DataGridView,该表当前只包含一个条目。我在该表中有一个名为“Notes”的列,旨在为文本数据提供相对较大的存储空间;用户需要能够在单个文本框字段中输入和存储详细的注释。我的一条记录在该列中的条目(根据 Word)长度为 690 个字符(带空格),但在查看声称该列超过 MaxLength 限制的 DataGridView 时收到错误消息。我在设计期间手动将该限制(MaxInputLength 属性)设置为 2147483647,这显然远远高于 690,但错误仍然存​​在。

我不确定我的 DGV 的问题是什么,因为 690 个字符在存储方面并不是什么大问题。有人可以指出这个错误的根本问题吗?提前致谢!

4

3 回答 3

2

转到数据集并更改字段 maxLength 属性。这会手动覆盖数据集的过时信息。这不需要丢失表配置。

于 2015-01-14T19:36:16.553 回答
1

事实证明,这个错误背后的罪魁祸首是我的程序数据集和实际数据库之间缺乏通信。当我最初收到错误时,我将输入的文本数据留在了数据库中,更改了 DataGridView 中行的大小允许,并重新构建了我的程序。但是,数据集没有更新以反映大小变化——数据集和数据库之间的通信已关闭,因为错误已经发生。换句话说,数据集并没有更新自己以“保护”自己(即使这不是必需的)。

我通过在设计器中重新绑定我的 DGV 解决了这个问题。我将 DGV 的数据源属性设置为无,删除了连接附带的三个适配器,并删除了我的旧数据集。一切都清楚后,我重新建立了数据连接(使用相同的连接字符串)并且错误消失了。我希望这可以帮助遇到同样问题的任何人——那些 DGV 是偷偷摸摸的。

于 2013-08-12T14:49:46.833 回答
0

创建“注释”列时,您指定了要使用的类型。
我自己用varChar(maxStringLenth)

为了更有效地帮助您,您能否提供有关您的 dataGrid 和 DataBase 的更多技术信息

于 2013-08-08T22:05:54.897 回答