Problme insertion

Résolu
benameur11 Messages postés 15 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 5 juin 2009 - 28 mai 2009 à 12:19
benameur11 Messages postés 15 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 5 juin 2009 - 28 mai 2009 à 17:28
bonjour je veu insérer dans une table payement qui n'a pa de clé primaire elle possède 2 clé étrangères. le problème . l'insertion est faite via une méthode qui se trouve dans un service web, ma méthode fonctionne mais elle ajout 2 fois l'enregistrement.Merci de votre aide . 

9 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
28 mai 2009 à 13:52
Tu aurais dû répondre sur ce post : http://www.csharpfr.com/forum/sujet-INSERER-DONNES_1318366.aspx, pas en faire un nouveau.

Enfin bon...

Tu peux faire un truc du genre
SqlCommand commande = new SqlCommand();
commande.Connection = maConnexionSQL;commande.CommandText "SELECT COUNT(IdCle1) FROM Table WHERE IdCle1 @IdCle1 AND IdCle2 = @IdCle2;";
commande.Parameters.Add(new SqlParameter("@IdCle1", cle1));
commande.Parameters.Add(new SqlParameter("@IdCle2", cle2));

if(commande.ExecuteScalar().ToString() == "0")
{
    // Ajout
}

ou sinon, tu peux peut-être utiliser des procédures stockées (si ta BDD le permet), ce qui te permettra de gagner en performances et simplifiera grandement ton code

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
3
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
28 mai 2009 à 15:28
if(commande.ExecuteScalar().ToString() == "0")
{
    // Ajout
    return true;
}else{
    return false;
}

et dans l'appel à ta webmethod :

if(webMethodInsertion(mesDonnees))
{
    MessageBox.Show("Enregistrement ajouté");
}else{
    MessageBox.Show("L'enregistrement existe déjà");
}

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
3
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
28 mai 2009 à 15:59
if(commande.ExecuteScalar().ToString() == "0")
{
    // Ajout
    return monDataSet;
}else{
    return null;
}

DataSet ds;
ds = webMethodInsertion(mesDonnees);
if(ds != null)
{
    MessageBox.Show("Enregistrement ajouté");
}else{
    MessageBox.Show("L'enregistrement existe déjà");
}

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
3
benameur11 Messages postés 15 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 5 juin 2009
28 mai 2009 à 14:24
salut, toujours le meme probleme il ajout 2 fois l'enregistrement .Merci de ton aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
benameur11 Messages postés 15 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 5 juin 2009
28 mai 2009 à 14:37
je pense que le problème est dans la requête string req = "INSERT INTO Payement(CodeClient,CodeProduit, Dates, Type )VALUES( '" + CodeClient + "','" + CodeProduit + "','" + Dates + "', '" + Type + "');";
quand je met la clé primaire de la table payement dans le champ CodeClient le problème ne pose pas mais il y a un autre problème , dans le champ codeClient pas de doublons .
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
28 mai 2009 à 14:42
T'es sûr que tu n'exécute pas tout simplement 2 fois ta requête ?
Parce que je peux t'assurer que si tu as déjà un enregistrement avec la même IdCle1 et la même IdCle2, il ne rentre pas dans le if du code que je t'ai link.

Envoie le code de ta fonction, on trouvera peut-être d'où vient l'erreur

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
0
benameur11 Messages postés 15 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 5 juin 2009
28 mai 2009 à 15:11
merci de ta réponse j'ai trouvé le problème au niveau de cette commande " ExecuteNonQuery();" j'ai enlevé cette commande et sa marché. comment envoyé la résultat a mon application sous forme un messagebox qui m'indique que si cet enregistrement existe ou no s'il existe alors m'affiche cet enregistrement existe" sinon il ajoute l'enregistrement . Merci beaucoup
0
benameur11 Messages postés 15 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 5 juin 2009
28 mai 2009 à 15:49
dommage une erreur   Impossible de convertir implicitement le type 'System.Data.DataSet' en 'bool'  .ma methode retourne une dataset qui est liée a datagridview alors comment testé dans l'application si l'neregistrement est ajouté .Merci du grand travail que tu fait
0
benameur11 Messages postés 15 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 5 juin 2009
28 mai 2009 à 17:28
merci beaucoup
0
Rejoignez-nous