ami7
Messages postés99Date d'inscriptiondimanche 8 août 2010StatutMembreDernière intervention29 juin 2011
-
28 avril 2011 à 12:44
LUDINSKI
Messages postés441Date d'inscriptionmardi 2 décembre 2003StatutMembreDernière intervention22 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 = "";
LUDINSKI
Messages postés441Date d'inscriptionmardi 2 décembre 2003StatutMembreDernière intervention22 mai 20128 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..." );
}