IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

probleme de connexion sql


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 15
    Par défaut probleme de connexion sql
    bonsoir tout le monde, j'ai un petit problème avec deux fenetres dans mon application je désire realisér deux requetes et inserer les données dans deux tables differents(window 7) de la meme base de données que j'ai déja creer sous visual studio en faisant le choix entre les deux requetes à l'aide d'un combobox créer dans la fenetre(4) ,le probleme c'est que le programme ne voit pas la condition que j'ai mis pour inserer les données soit dans la premiere table ou dans la deuxieme .
    est ce que quelqu'un peut m'aider à resoudre ce probleme? et merci pour votre aide
    Nom : Sans titre.png
Affichages : 200
Taille : 6,7 Ko
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     public int ajout_lots()
            {
                int n = 0;
                for (int i = 0; i < list_lots_col.Count; i++ )
                {
                    lot_struc lot = list_lots_col.ElementAt(i);
     
                    try
                    {
                        string cm1 = "INSERT INTO lots (reference,product_key,quantity,id_op) VALUES ( @reference  , @product_key, @quantite,@id_operation)";
                        string cm4 = "INSERT INTO new_lots (reference,product_key,quantity,id_op) VALUES ( @reference  , @product_key, @quantite,@id_operation)";
                        if (Oven_Class.list_Oven.ElementAt(oven_index).operation == 0)
                        {
     
                            //  string cm2 = " SELECT id_lots FROM  lots WHERE reference= ";
                            CNX.cmd.Parameters.AddWithValue("@reference", lot.lotnum);
                            CNX.cmd.Parameters.AddWithValue("@product_key", lot.product);
                            CNX.cmd.Parameters.AddWithValue("@quantite", lot.quantity);
                            CNX.cmd.Parameters.AddWithValue("@id_operation", id_operation);
                            //  Class1.con.Open();
                            CNX.cmd.CommandText = cm1;
                            CNX.reader = CNX.cmd.ExecuteReader();
                            CNX.reader.Close();
                            CNX.cmd.Parameters.Clear();
                            n++;
                        }
                         if( Oven_Class.list_Oven.ElementAt(oven_index).operation  == 1)
                         {
                             CNX.cmd.Parameters.AddWithValue("@reference", lot.lotnum);
                             CNX.cmd.Parameters.AddWithValue("@product_key", lot.product);
                             CNX.cmd.Parameters.AddWithValue("@quantite", lot.quantity);
                             CNX.cmd.Parameters.AddWithValue("@id_operation", id_operation);
                             //  Class1.con.Open();
                             CNX.cmd.CommandText = cm4;
                             CNX.reader = CNX.cmd.ExecuteReader();
                             CNX.reader.Close();
                             CNX.cmd.Parameters.Clear();
                           }
     
     
                         n++;
                     }
     
                    }
                    catch (DivideByZeroException ex)
                    {
                        CNX.reader.Close();
                        CNX.cmd.Parameters.Clear();
                        listView1.SelectedIndex = i;
     
                        MessageBox.Show(ex.Message + "  Reference : " + lot.lotnum + "\n     already exists");
                    }
                }
                return n;
            }
    à l'execution de ce programme il me donne le message suivant :Nom : Sans titre.png
Affichages : 237
Taille : 118,0 Ko

  2. #2
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    pour ton problème de choix de requête ça vient certainement de ta condition, mais comme je connais pas les objets que tu utilises je vais pas pouvoir bien t'aider.
    Lance ton programme en pas-à-pas et utilise l'espion pour savoir si l'attribut discriminant est correct, et sinon pour en trouver un bon.

    Pour ton problème d'exécution, d'après ce que j'arrive à lire de l'exception, tu enfreins la contrainte UNIQUE PK_lots sur la table 'lots' en essayant d'insérer 2x la(les) même(s) valeur(s) dans le(s) champ(s) servant de PRIMARY KEY.

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 15
    Par défaut Re
    d'abord merci pour votre reponse ,oui exactement c'est ça le problème que j'ai rencontré. je veux que ma première requête insere un lot dans la première table et que la deuxieme requête insere le même lot dans la deuxieme table mais le problème c'est comme les deux coditions que j'ai mis pour faire les deux requêtes ne se manipulent pas par le programme par consequent il fait l'enregistrement du lot deux foix dans la même table . et merci encore une fois pour votre aide

  4. #4
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Mais comme déjà dit je ne connais rien de ton programme, tes IHM, tes objets ... ni même le comportement final souhaité. Je sais pas à quoi sert ta boucle, je sais pas comment sont constitués les objets te servant dans tes conditions, je comprends pas trop le double "if" alors qu'un "else/else if/switch" me paraitrait plus approprié, je vois vraiment pas ce que vient faire la gestion de la division par zéro sachant que tu n'as aucune division, et que le texte que tu affiches alors laisse plutôt penser que veux savoir si t'as une DUPLICATE KEY ...

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 15
    Par défaut Re
    ça se peut que j'ai commis beaucoup d'erreurs qui m'a causer ce problème ,je suis debutante en c# et je suis obligée de realisé un projet qui fait le control de temperature ,ce programme que vous voyez m'a pris un mois et demi de travail et à la fin j'arrive pas au bon resultat ,si vous voulez m'aidez je vais publier le programme entier des deux fenetres ici au forum et si vous voulez de m'aider à dédecter ou j'ai commis des bitises merci encore une fois pour votre aide et bonne journée

  6. #6
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Envoie ton code. Je te promets mais peut-être que d'ici la fin de semaine je trouverai le temps de lire ton code entier (ou peut-être que d'ici là un autre helper passera ici).

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 373
    Par défaut
    Bonjour,

    Comme je te l'ai dit sur l'autre forum, j'améliore ma solution proposée ici:

    Citation Envoyé par halima alaoui Voir le message
    bonsoir tout le monde, j'ai un petit problème avec deux fenetres dans mon application je désire realisér deux requetes et inserer les données dans deux tables differents(window 7) de la meme base de données que j'ai déja creer sous visual studio en faisant le choix entre les deux requetes à l'aide d'un combobox créer dans la fenetre(4) ,le probleme c'est que le programme ne voit pas la condition que j'ai mis pour inserer les données soit dans la premiere table ou dans la deuxieme??????? .
    En recopiant presque tout ton code, tu n'a qu'à remplacer le second "if" par "else if" comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     public int ajout_lots()
            {
                int n = 0;
                for (int i = 0; i < list_lots_col.Count; i++ )
                {
                    lot_struc lot = list_lots_col.ElementAt(i);
    
                    try
                    {
                        string cm1 = "INSERT INTO lots (reference,product_key,quantity,id_op) VALUES ( @reference  , @product_key, @quantite,@id_operation)";
                        string cm4 = "INSERT INTO new_lots (reference,product_key,quantity,id_op) VALUES ( @reference  , @product_key, @quantite,@id_operation)";
    
                        if (Oven_Class.list_Oven.ElementAt(oven_index).operation == 0)
                        {
    
                            //  string cm2 = " SELECT id_lots FROM  lots WHERE reference= ";
                            CNX.cmd.Parameters.AddWithValue("@reference", lot.lotnum);
                            CNX.cmd.Parameters.AddWithValue("@product_key", lot.product);
                            CNX.cmd.Parameters.AddWithValue("@quantite", lot.quantity);
                            CNX.cmd.Parameters.AddWithValue("@id_operation", id_operation);
                            //  Class1.con.Open();
                            CNX.cmd.CommandText = cm1;
                            CNX.reader = CNX.cmd.ExecuteReader();
                            CNX.reader.Close();
                            CNX.cmd.Parameters.Clear();
                            n++;
                        }
                       else if( Oven_Class.list_Oven.ElementAt(oven_index).operation  == 1)//Mets un 'else if'à la place du second 'if'
                         {
                             CNX.cmd.Parameters.AddWithValue("@reference", lot.lotnum);
                             CNX.cmd.Parameters.AddWithValue("@product_key", lot.product);
                             CNX.cmd.Parameters.AddWithValue("@quantite", lot.quantity);
                             CNX.cmd.Parameters.AddWithValue("@id_operation", id_operation);
                             //  Class1.con.Open();
                             CNX.cmd.CommandText = cm4;
                             CNX.reader = CNX.cmd.ExecuteReader();
                             CNX.reader.Close();
                             CNX.cmd.Parameters.Clear();
                           }
    
                        
                         n++;
                     }
    
                    }
                    catch (DivideByZeroException ex)
                    {
                        CNX.reader.Close();
                        CNX.cmd.Parameters.Clear();
                        listView1.SelectedIndex = i;
    
                        MessageBox.Show(ex.Message + "  Reference : " + lot.lotnum + "\n     already exists");
                    }
                }
                return n;
            }

Discussions similaires

  1. probleme de connexion à sql +
    Par AhmeD_N dans le forum Connexions aux bases de données
    Réponses: 10
    Dernier message: 03/09/2007, 15h10
  2. Probleme de connexion à SQL Server 2000
    Par Chikh001 dans le forum JDBC
    Réponses: 3
    Dernier message: 30/08/2007, 11h32
  3. Probleme de connexion Sql server
    Par Erwan56 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/07/2007, 13h02
  4. Probleme de connexion SQL Server
    Par RA dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 20/12/2005, 15h08
  5. [C#] Problème de connexion sql server 2000
    Par rabbiwan dans le forum ASP.NET
    Réponses: 8
    Dernier message: 22/12/2004, 16h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo