DataGridView在数据集更新vb.net之后不刷新 [英] DataGridView does not refresh after dataset update vb.net

查看:376
本文介绍了DataGridView在数据集更新vb.net之后不刷新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有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)

我从这个表中删除membres表如下

 '获取会员ID 
Dim userId As Integer
userId = DataGridView1.Item(0,0).Value

'删除会员
Me.MeoshowDataSet2.membres.FindByID(userId).Delete()
Me.MembresTableAdapter.Update(Me.MeoshowDataSet2)

'刷新datagrid
dataGridView1.Refresh()'没有

我知道delete语句的工作原理是因为我看到数据库中的更改。如果我关闭表单并重新打开它,则dataGridView是最新的。



Membres表是访问表


解决方案

这样做的一般方法是重新设置 DataGridView 的DataSource



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

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

调用 .Refresh()不工作,因为它只是强制重画,但是绘制网格的代码不知道这些变化。


I have a vb.net form with a dataGridView

The dataGridView data source is the dgvTableAdapter with this sql statement

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)

I delete membres from the membres Table like this

' 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

I know the delete statement works because I saw the changes in the database. If I close the form and reopen it, the dataGridView is up to date.

The membres table is an access table

I'm running the app in visual 2010 debug mode.

解决方案

The usual way of doing this is to reset the DataSource of the DataGridView.

Try like this code (with correct code to provide the right table from the dataset):

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

Calling .Refresh() doesn't work since it only forces a repaint, but the code that paints the grid doesn't know of the changes.

这篇关于DataGridView在数据集更新vb.net之后不刷新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆