数据集更新vb.net后DataGridView不刷新

     2023-03-12     113

关键词:

【中文标题】数据集更新vb.net后DataGridView不刷新【英文标题】:DataGridView does not refresh after dataset update vb.net 【发布时间】:2012-04-25 09:52:12 【问题描述】:

我有一个带有 dataGridView 的 vb.net 表单

dataGridView 数据源是带有这条sql语句的dgvTableAdapter

SELECT membres.ID, membres.refere_par, bands.titre, 
       membres_1.prenom & ' ' & membres_1.nom  AS reference_nom
FROM ((bands INNER JOIN membres ON bands.ID = membres.[band]) 
      INNER JOIN membres membres_1 ON membres.refere_par = membres_1.ID)

我像这样从成员表中删除成员

' Get member id 
Dim userId As Integer 
userId = DataGridView1.Item( 0,0).Value

' Delete the member
Me.MeoshowDataSet2.membres.FindByID(userId).Delete()
Me.MembresTableAdapter.Update(Me.MeoshowDataSet2)

' Refresh datagrid
dataGridView1.Refresh() ' does nothing

我知道删除语句有效,因为我看到了数据库中的更改。如果我关闭表单并重新打开它,dataGridView 是最新的。

成员表是访问表

我正在 Visual 2010 调试模式下运行应用程序。

【问题讨论】:

【参考方案1】:

执行此操作的通常方法是重置DataGridViewDataSource

试试这个代码(使用正确的代码从数据集中提供正确的表):

dataGridView1.DataSource = typeof(List); 
dataGridView1.DataSource = dataset.Tables["your table"];

调用.Refresh() 不起作用,因为它只会强制重新绘制,但绘制网格的代码不知道更改。

【讨论】:

我没有使用 dataGridView1.DataSource = typeof(List);但是重新分配数据集确实有效。谢谢! 我认为你需要 - 这是解决问题的部分!本质上,您需要清空数据源 - 您可以将数据源设置为 null,但使用 typeof(List) 将维护自动生成的列。但是,如果没有它也能正常工作,那就太好了:) 我使用 dataGridView1.Datasouce = Nothing 啊 - 是的,大致相同(忘了你是在 vb.net 工作的)。 难道不能用 BindingSource 来通知 DGV DataTable 的变化吗?【参考方案2】:

我在寻找完全相同的问题时偶然发现了这一点。不过网上没找到。 这对我有用:

Public Sub RefreshData()
    dTable.Clear()
    dAdapter.Fill(dTable)
    dtaDataGrid.DataSource = dTable
End Sub

Private Sub btnRefresh_Click(sender As System.Object, e As System.EventArgs) Handles btnRefresh.Click
    RefreshData()

    ClearAllTextBox(Me)
End Sub

首先清除数据表中的所有数据,然后用数据适配器中的数据重新填充它,因为您说数据库已使用您的代码进行了更新,只是它没有刷新。

【讨论】:

谢谢,它也对我有用。将数据源重置为空只会扰乱我的 Datagrid,因为我为每一列设置了 DataPropertyName。你的建议很完美!【参考方案3】:

你也可以这样用:

DirectCast(dataGridView1.DataSource, DataTable).AcceptChanges()

只需替换dataGridView1。第二个参数是DataTable 类。

【讨论】:

【参考方案4】:

...以及对我有用的替代方法:

'reset datasource

dgvBHL.DataSource = nothing

' Assign datatable to dgv this always works 1st time it is called

dgvBHL.DataSource = dtData 

'To fix the DGV not refreshing properly after the 1st time, switch the sort order

dgvBHL.Sort(dgvBHL.Columns(0), System.ComponentModel.ListSortDirection.Descending)

dgvBHL.Sort(dgvBHL.Columns(0), System.ComponentModel.ListSortDirection.Ascending)

'No need to do a refresh or anything else

【讨论】:

【参考方案5】:

我刚刚添加了这一行:

    Me.EmpTableAdapter.Fill(Me.MyDbDataSet1.Emp)

【讨论】:

VB.NET 2008 DataGridView 不更新 Visual Foxpro 数据库

】VB.NET2008DataGridView不更新VisualFoxpro数据库【英文标题】:VB.NET2008DataGridViewnotUpdatingVisualFoxproDatabase【发布时间】:2011-02-1903:09:01【问题描述】:我正在使用带有DataGridView的VB.NET2008,并且正在使用vfpoledb.1驱动程序连接到VisualFoxpro6... 查看详情

VB.NET 无法更新 datagridview 中的 SQL 数据

】VB.NET无法更新datagridview中的SQL数据【英文标题】:VB.NETcannotupdateSQLdataindatagridview【发布时间】:2017-11-1021:37:40【问题描述】:我尝试了很多方法,但问题仍然无法解决。我的目的是点击搜索按钮后,datagridview会在特定条件下显... 查看详情

vb.net更新datagridview资料到mysql

在DataGridView中使用者可以读取到数据库并进行删除及修改资料但作出的修改和删除不会储存到数据库如果加一个"更新"的按钮把更改了的资料更新到数据库语法是怎样呢?谢谢对mysql不太清楚,假如是sqlserver,分两种情况... 查看详情

Vb.net 编辑 DatagridView

】Vb.net编辑DatagridView【英文标题】:Vb.netEditingDatagridView【发布时间】:2015-04-0715:39:03【问题描述】:我创建了一个简单的程序,可以在其中搜索数据库表。通过按钮添加数据和删除数据。现在我希望能够更新数据网格视图中的... 查看详情

选择新数据后如何在 VB.Net 中刷新 Datagridview

】选择新数据后如何在VB.Net中刷新Datagridview【英文标题】:HowrefreshDatagridviewinVB.Netafterseletcanewdata【发布时间】:2021-06-1719:56:08【问题描述】:我有一个问题,因为,当我想在datagridview中加载一个新的注册时,会显示上一条记录... 查看详情

使用 vb.net 2010 datagridview 更新 SQL 服务器表

】使用vb.net2010datagridview更新SQL服务器表【英文标题】:UpdatingSQLservertablewithvb.net2010datagridview【发布时间】:2014-02-1707:43:30【问题描述】:我在使用datagridview更新我的数据库表时遇到问题,我已经阅读了一些关于该问题的帖子,... 查看详情

【vb.net】datagridview绑定数据后数据变化触发事件

datagridview绑定了数据,每隔两分钟刷新一次,如果表格中的数据发生了变化,会触发什么事件呢?似乎会触发cellvaluechanged事件,但是加载数据时不想触发,应该怎么控制呢建议在编辑datagridview的时候先暂停刷新,可以使用checkbox... 查看详情

VB.NET 数据集更新

】VB.NET数据集更新【英文标题】:VB.NETDataSetUpdate【发布时间】:2009-11-0806:45:55【问题描述】:为什么我的代码集没有在DataSet中更新?然后它进入错误。请任何人检查此代码并指出我失踪的地方。提前致谢!PrivateSubbtnUpdate_Click(By... 查看详情

vb.net怎么将datagridview的数据写入数据库

我在窗体中拖放了一个DATAGRIDVIEW和几个TEXTBOX在TEXTBOX中写入数据后按添加按钮添加到DATAGRIDVIEW中Dim商品代码=proid.TextDim商品名称=proname.TextDim规格=progg.TextDim单位=propice.TextDim入库量=proaddsu.TextDataGridView1.Rows.Add(商品代码,商品名称,规... 查看详情

VB.net DataGridView 更改数据时显示不正确

】VB.netDataGridView更改数据时显示不正确【英文标题】:VB.netDataGridViewincorrectdisplaywhenchangedata【发布时间】:2014-11-0415:52:31【问题描述】:我将下面的代码放在ComboBox1.SelectedIndexChanged上,第一次没问题,但是如果我更改组合的值,... 查看详情

为啥 vb.net中datagridview控件显示不出来绑定的数据呢?

...nGJCXAsNewADODB.ConnectionDimrsGJCXAsNewADODB.Recordset(DGV_GJCX是一个DataGridView控件)sqlstrGJCX="SELECT*FROMCARBIDE.DBO.Table1ORDERBY[记录号]"cnGJCX.Open()rsGJCX=cnGJCX.Execute(sqlstrGJCX)DGV_GJCX.AutoGenerateColumns=TrueDGV_GJCX.DataSource=rsGJCX为什么在程序运行后... 查看详情

数据网格视图更新,在 vb.net windows 窗体中编辑和删除,使用多个表来填充 datagridview

...新,在vb.netwindows窗体中编辑和删除,使用多个表来填充datagridview【英文标题】:datagridviewupdate,Editanddeleteinvb.netwindowsformthatusingmultipletabletopopulatedatagridview【发布时间】:2014-01-0607:20:13【问题描述】:我是Windows窗体应用程序的新... 查看详情

关于vb.net2005中datagridview的问题

在dataGridView中双击某一行数据弹出另一个页面对这条数据进行修改,修改完毕后点保存返回原来的页面并对原来的页面进行刷新,我的问题就是,如何将修改后的数据设为选中行,并将其显示在dataGridView的第一行。那位高手会的... 查看详情

oracle vb.net 数据集填充

...】:这段代码有什么问题?没有错误,但没有结果。我的DataGridView_sent没有被填满。DimobjConnAsNewSystem.Data.OracleClient.OracleConnectionDimobjCmdAsNewSystem.Data.OracleClient 查看详情

在 vb net 中显示从 1 个平板电脑到 2 个过滤后的 datagridview 的数据

】在vbnet中显示从1个平板电脑到2个过滤后的datagridview的数据【英文标题】:displaydatafrom1tabletto2filtereddatagridviewinvbnet【发布时间】:2014-07-3012:36:15【问题描述】:我有两个datagridview控件和一个表。我正在尝试使用dgv1上的一个过滤... 查看详情

删除、更新或插入后 DataGridView 不更新

】删除、更新或插入后DataGridView不更新【英文标题】:DataGridViewdoesnotupdateafterdelete,updateorinsert【发布时间】:2016-10-1317:43:29【问题描述】:我有一个DatagGridView,它有一个来自Access数据库的DataSet。我在删除、更新或插入数据时遇... 查看详情

请问vb.net中datagridview表里的数据怎样写入到数据库中

VB.NET中datagridview表里的数据怎样写入到数据库中,请给出实际操作代码,不要理论说说的道理,谢谢参考技术APublicClassdatafrmDimconnAsSQLite.SQLiteConnectionDimcmdAsSQLite.SQLiteCommandDimapAsSQLite.SQLiteDataAdapterDimmytableAsNewDataTablePrivateSubdatafrm_Load(B... 查看详情

在 vb.net 中更新后刷新数据网格视图

】在vb.net中更新后刷新数据网格视图【英文标题】:refreshdatagridviewafterupdatinginvb.net【发布时间】:2013-03-0518:10:13【问题描述】:我有一个特定表的数据网格视图和详细信息。我更新了详细信息,但它没有在数据网格视图中更新... 查看详情