VB.NET和Microsoft Access:旧表条目卡在DataGridView中

时间:2013-07-09 15:06:29

标签: vb.net visual-studio-2010 ms-access datagridview refresh

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

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

我所取得的最大进步是能够使用

完全清除网格
grdTableDisplay.DataSource = Nothing
grdTableDisplay.Rows.Clear()

但是在使用

重新分配数据源时
grdTableDisplay.DataSource = TableDisplayBindingSource

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

我非常感谢任何人都可以提供给我的任何洞察力。这个问题阻止我测试我的应用程序,可能很容易解决。提前谢谢!

1 个答案:

答案 0 :(得分:0)

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