Search code examples
vb.netdatagridviewdatasettableadapter

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.


Solution

  • 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.