Refresh DataGridView après requète DROP Column

yannrmt Messages postés 3 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2011 - 27 oct. 2010 à 16:19
yannrmt Messages postés 3 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2011 - 28 oct. 2010 à 09:24
Bonjour,
Je dois créer pour le boulot un soft, sous VB.net, qui communique avec une DB access. Je n'y connaissais absoluement rien il y a 15 jours, et sachez avant tout que j'ai passé plusieurs heures sur le net pour trouver ma réponse.

Le problème :
Sur mon Form, j'ai un DataGridView et plusieur Button. Il y a 2 boutons en particulier qui ajoute ou supprime (en inscrivant le Nom de la colonne dans une TextBox) une colonne (champ) de la DB via la DataTable, DataSet, DataAdapter etc etc etc...

pour ajouter une colonne j'ai le code suivant

Private Sub AjColButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AjColButton.Click
        Bd.Ouverture("C:\Documents and [...]Base de Test\bd1.mdb")
        If TextBoxCham.Text = "" Then
            MsgBox("Indiquer le nom du champ à ajouter")
        Else
            Dts.Clear()
            Dts = Bd.Requet_Gene("ALTER TABLE Test ADD " + TextBoxCham.Text + " varchar(30)", "Test")
            Dts = Bd.Requet_Gene("SELECT * FROM Test ORDER by ID", "Test")
            Bd.Close()
            DataGridView1.DataSource = Dts.Tables("Test")
        End If
        TextBoxCham.Text = ""
    End Sub


Bd.ouverture appel une procédure pour la connection
Dts est le DataSet ou est stocké le résultat de la requète SQL sur la Table Test de la DB bd1.mdb

En cliquant, la colonne s'ajoute. Le DataGridView est actualisé par
DataGridView1.DataSource = Dts.Tables("Test")


Pour supprimer une colonne, j'ai exactement le même code avec la requète SQL suivante
Private Sub SupCol_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SupCol.Click
        Bd.Ouverture("C:\Documents and [...]Base de Test\bd1.mdb")
        If TextBoxCham.Text = "" Then
            MsgBox("Indiquer le nom du champ de la colonne à effacer")
        Else
            Dts.Clear()
            Dts = Bd.Requet_Gene("ALTER TABLE Test DROP COLUMN " + TextBoxCham.Text + "", "Test")
            Dts = Bd.Requet_Gene("SELECT * FROM Test ORDER by ID", "Test")
            Bd.Close()
            'DataGridView1.Columns.Clear()
            DataGridView1.DataSource = Dts.Tables("Test")
        End If
        TextBoxCham.Text = ""
    End Sub


Mais quand je clique sur ce dit Button (SupCol), le DataGridView ne se met pas à jour. la colonne (qui est bien supprimé par la requète après rechargement) est toujour visible. J'ai ajouté un DataGridView.Column.clear(), mais tous s'efface.

Merci d'avance à ceux qui prendrons le temps de comprendre. Je reste à votre dispo.

Bonne fin de journée

1 réponse

yannrmt Messages postés 3 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2011
28 oct. 2010 à 09:24
Il n'y a pas de petit génie parmi vous?
0
Rejoignez-nous