Pb de suppression dans une base de donnée !!!!

saku_ Messages postés 4 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 16 avril 2004 - 16 avril 2004 à 12:16
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 - 19 avril 2004 à 15:09
j'ai une base de donnée de ce type

-------------------------------------------
numele / nomele / preele / datenai /
-------------------------------------------
1 tata tutu 12121985
-------------------------------------------
2 dupont jean 28111985
------------------------------------ -------
3 dupont paul 02021953
-------------------------------------------
4 test papa 03121985
-------------------------------------------

j'ai réalisé un petit programme en mode console dont le principe est de faire des mofifications , des ajouts et des suppressions de la base de données.

Mon souci est celui de la suppression.

-------L' objectif dans l'application :--------------------
je demande quelle nom d'eleve vous voulez supprimer?
je tape dupont
A ce moment là on affiche tout les noms correspondant à dupont suivi de leur prenom.( soit dupont jean et dupont paul)
Et enfin je choisi maintenant le prenom à suppprimer
(soit paul)
la suppression s'est effectué
Voila ce que je souhaite faire.


--------- Probleme de suppression---------------------

Je n'arrive pas à le réaliser : voici mon code:


private string sNom;
private string sPrenom;
private string sDateNaissance;
private string sid;
private bool bverif;

class personne
{
 public bool Verif_Supp()
  {
    personne unepersonne = new personne();   maSqlCmd.CommandText "Select * From eleve where   Nomele '"+sNom+"'";
   monSqlDR = maSqlCmd.ExecuteReader();
   while (monSqlDR.Read())
   {
    if ((monSqlDR.GetString(1) == sNom))
      {
       bverif=true;
     Console.WriteLine("Il y a plusieurs fois le même nom");
     Console.WriteLine("Choisissez un prénom");	  
     unePersonne.Prenom = Console.ReadLine();
     maSqlCmd.CommandText="Delete from eleve where   Nomele= '"+sPrenom+"'";
     maSqlCmd.ExecuteNonQuery();
     break;			   
     }
     else
          {
           bverif=false;
          }
     }
     monSqlDR.Close();
     return bverif;
}

public void Supprimer()
{
maSqlCnx.ConnectionString="server=LOCALHOST;database=ecole;user id=sa;password=";
maSqlCnx.Open();
maSqlCmd.Connection=maSqlCnx;
    Verif_Supp();
    if ( bverif == false)
    {
    maSqlCmd.CommandText="Delete from eleve where   Nomele= '"+sNom+"'";
    maSqlCmd.ExecuteNonQuery();
    }			 
maSqlCnx.Close(); // fermeture
}


-----------------------------------------------------------

4 réponses

TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
16 avril 2004 à 14:04
maSqlCmd.CommandText="Delete from eleve where Nomele= '"+sPrenom+"'";

C'est pas plutot çà :

maSqlCmd.CommandText="Delete from eleve where preele= '"+sPrenom+"'";

::|The S@ib|::
MVP C#.NET
0
saku_ Messages postés 4 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 16 avril 2004
16 avril 2004 à 14:24
L'objectif: c d'abord de faire un critere de selection en fonction du nom
d'ou maSqlCmd.CommandText "Select * From eleve where Nomele '"+sNom+"'";

ensuite s'il existe des eleve portant le meme nom alors la suppression par le prenom ensuite

d'ou
maSqlCmd.CommandText="Delete from eleve where Nomele= '"+sPrenom+"'";

Je pense que le pb vient en fait : fonction verif_suppr
il faut que je lise toute les lignes de ma table dans la base de donnée qui possede le nom ='dupont'
Or ce que j'ai fait : c'est lorsque je saisie le nom='dupont' je verifie s'il existe ce nom dans ma base ( ce qui est correct je pense)

mais je n'arrive a faire le code qui permet de faire la lecture de chaque ligne de la base de donnée qui porte le meme nom. Defacon à ce que je puisse recuperer toute les eleves portant le nom ='dupont' et de les afficher

je ne sais pas si j'ai été clair. :)
Merci pour m'avoir repondu :)
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
19 avril 2004 à 15:08
je pense plutot que ta requete de suppression devrait etre

maSqlCmd.CommandText="Delete from eleve where preele= '"+sPrenom+"' and Nomele= '"+sNom+"'";

comme ca tu efface les élêves dont le nom est "dupont" et le prénom "Paul" ou autre...

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
19 avril 2004 à 15:09
je pense plutot que ta requete de suppression devrait etre

maSqlCmd.CommandText="Delete from eleve where preele= '"+sPrenom+"' and Nomele= '"+sNom+"'";

comme ca tu efface les élêves dont le nom est "dupont" et le prénom "Paul" ou autre...

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Rejoignez-nous