0

我在 DataGridView 中检索和显示 Access 表的内容时遇到了一个非常奇怪的问题。问题如下:

我正在开发具有两种形式的 VS2010 应用程序。主窗体在按下按钮时显示第二个窗体,第二个窗体包含一个 DataGridView,它使用 BindingSource(或 DataSet,或者你有什么)链接到我本地 PC 上的 Access 表。当我第一次将我的网格的 Data Source 属性设置为表作为新数据源(这意味着我当时将其添加到项目中)时,网格准确地反映了我的表的当前内容。但是,在那之后,我完全无法更改网格上表格的显示内容;内容被卡在那些行中。即使通过我正在编写的程序和 Access 本身添加和删除行,网格的内容也永远不会更改以反映当前数据。幽灵内容还通过程序重置(关闭程序并重新打开)和重新分配数据源而持续存在。

我取得的最大进展是能够使用完全清除网格

grdTableDisplay.DataSource = Nothing
grdTableDisplay.Rows.Clear()

但是在使用重新分配数据源时

grdTableDisplay.DataSource = TableDisplayBindingSource

幽灵数据返回。这使我相信我的绑定源或数据集在初始数据源设置后根本没有更新。

我将非常感谢任何人都可以提供给我的对此问题的任何见解;这个问题使我无法测试我的应用程序,并且可能很容易解决。提前致谢!

4

1 回答 1

0

事实证明,我在 MSDN 上挖掘了一段时间后能够解决这个问题。当我为网格的数据源设置连接时,它会向您发送一个向导,帮助您设置数据类型(数据库)和连接字符串等内容。完成连接字符串阶段后,会弹出一个窗口询问您是否要存储数据库文件的本地副本,该副本将由某个事件或其他事件自动更新。说不!!!该文件根本没有更新,VS2010 有助于将您的数据源重定向到本地副本,该副本永远不会更新,这会导致网格中出现旧的、无用的数据。在重做连接并且不保存本地数据库副本之后,我的网格最终反映了我的表的当前内容。我希望这可以避免有人为实际上位于房间外的房间寻找相当于电灯开关的麻烦!

于 2013-07-10T12:18:24.047 回答