首页 文章

如何在Visual Basic(.NET)中绑定到MySQL数据库的datagridview上实现自动刷新

提问于
浏览
0

我有一个带有datagridview的visual basic程序,在加载时绑定到mysql数据库...我还有一些字段,你可以更新所选行,添加,删除等等 . 我想要自动刷新更新...但是,我无法弄清楚如何执行此操作,因为表只是在旧行下添加新行 . 有没有办法为mysql绑定的datagridview进行完整的表刷新而无需重新启动程序?

提前致谢!

2 回答

  • 0

    网格没有绑定到MySQL . 这是一个 DataTable . 如果要完全刷新数据,则只需清除该表,然后重新填充它 .

    myDataTable.Rows.Clear()
    
  • 1

    正如jmcilhinney建议的那样,datagridviews被绑定到DataTables(或者有时候是我自己的列表),所以他说的听起来应该有效 . 显然,因为它没有提出我的建议:

    你说"fields"你可以更新,添加,删除等所选行,对吗?听起来你正在做一些新行 . 正如您在数据绑定网格视图中所做的那样,我怀疑您实际上是以典型方式添加它们,而是采用某种程序化替代方案 .

    因此,尝试实现您的解决方案,而不是“重写”和更多的SQL更新 . 当用户输入他们希望更新的行的数据或他们希望创建的新行时,搜索行以获取给定的主键 .

    对于数据表,代码看起来像这样:

    string s = "primaryKeyValue";
    DataRow foundRow = dataSet1.Tables["AnyTable"].Rows.Find(s);
    foundRow.Item["DesiredColumn"] = newValue;
    

    来源:https://msdn.microsoft.com/en-us/library/y06xa2h1.aspx

    如果列表绑定为DataSource,我相信您必须执行以下操作:

    List<Thing> things = new List<Thing>(); // in case this wasn't obvious
    Thing tempThing;
    tempThing = things.Find(x => x.PartName.Contains("seat")));
    tempThing.Value = newValue;
    

    在修改了基础数据源之后,理论上,您应该能够简单地调用DataGridView.Refresh(),但是您可能需要做一些比较简单的事情,例如将数据源设置为null,然后重新绑定它以强制使用EndEdit .

    我知道这已经很晚了,但我希望它仍能帮助别人 .

相关问题