Comment supprimer une ligne d'une base de donnée

ami7 Messages postés 99 Date d'inscription dimanche 8 août 2010 Statut Membre Dernière intervention 29 juin 2011 - 28 avril 2011 à 12:44
LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 - 28 avril 2011 à 13:02
Salut,
Vous trouvez ci dessous le code que j'utilise pour supprimer une ligne d'une base de donnée, mon problème c'est que ce code supprime la première ligne de la base de données mais moi je cherche comment le modifier pour qu'il me permet de supprimer la ligne convenable car dans mon application j'utilise un comboBox et selon le text selectioné de ce comboBox il faut supprimer la ligne convenable dans la base de données (Access)
Le code c'est :

//déclaration du data adapter
OleDbDataAdapter Dta = new OleDbDataAdapter(this.SqlGrid, this.Conn);

//on vérifi qu'il y a un enregistrement
if (this.Ligne < 0)
{
this.Ligne = 0;
}
//on vérifi qu'il y a quelque chose dans le combobox
else if (this.comboBox3.Text == null )
{
this.Ligne = 0;
}
else
{
//on prend la ligne en cour et on la suprime
this.DtsGrid.Tables["site"].Rows[this.Ligne].Delete();
}

//on va a la ligne précédente
this.Ligne = this.Ligne - 1;

//on ne dépasse pas le dernier enregistrement
if (this.Ligne < 0)
{
this.Ligne = 0;
}

//on leve l'exception
try
{
//on met à jour la base de donnée
this.CmdGrid = new OleDbCommandBuilder(Dta);
Dta.UpdateCommand = CmdGrid.GetUpdateCommand();
Dta.Update(DtsGrid, "site");
}
catch (DBConcurrencyException DBCEx)
{
MessageBox.Show("Vous ne pouvez pas modifier quelque chose que vous venez de sauvegarder, veuillez redémarer l'application et recommencer");
}

//on suprime les données dans les textbox
comboBox3.Text = "";


merci :)

1 réponse

LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 8
28 avril 2011 à 13:02
Salut,

A aucun moment tu ne positionnes ton this.Ligne par rapport à la valeur de la ComboBox...

else 
{
    this.Ligne = -1;

    // Parcourt les lignes de la DataGrid
    int rowCount = this.DtsGrid.Tables["site"].Rows.Count;
    for( int rowIndex = 0; rowIndex < rowCount ; rowIndex ++ )
    {
        // La ligne en cours est celle concerné par la suppression
        DataRow row = this.DtsGrid.Tables["site"].Rows[ rowIndex ];
        if( row[ "nomDeLaColonne" ].ToString() == this.comboBox3.Text )
        {
            this.Ligne = rowIndex;
            break;
        }
    }

    // La ligne à supprimer a été trouvé
    if( this.Ligne != -1 )
    {
        //on prend la ligne en cour et on la suprime 
        this.DtsGrid.Tables["site"].Rows[this.Ligne].Delete();
    }
    else
        MessageBox( "Veuillez sélectionner une ligne à supprimer..." );

}



Ou quelquechose dans le genre !
0
Rejoignez-nous