pec pec - 4 years ago 319
Vb.net Question

DataGridView does not refresh after dataset update vb.net

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.

Answer Source

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.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download