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

Requêtes MySQL Discussion :

problème duplication donnée


Sujet :

Requêtes MySQL

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 74
    Par défaut problème duplication donnée
    salut
    j'utilise un code c# pour importer des données du fichiers texte vers B.D.
    mais quand je veux importer déja dans la base de donnée
    il m'affiche un message d'erreur:
    Violation of PRIMARY KEY constraint 'PK_airnode'. Cannot insert duplicate key in object 'dbo.airnode'.
    il n'accepte pas la duplication du clé primaire.
    il y a une solution?
    par exemple ajouter que les nouveaux variables
    merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Une clé primaire, c'est un moyen d'identification unique d'un élément en base - c'est comme le numéro de sécurité sociale d'une personne, le code ISBN d'un livre, le numéro d'une table dans un restaurant, ...
    Le contenu du fichier ne pourra jamais se faire si cela provoque un doublon de clé primaire.

    Donc deux possibilités :
    - Soit le modèle relationnel est bon alors il faut que le programme C# ouvre le fichier, regarde les données une à une les analyse et décide de ce qu'il doit insérer ou éventuellement mettre à jour en fonction de ce qui est déjà dans la table.

    - Soit le modèle relationnel est erroné alors il faut remettre en question cette PRIMARY KEY et en reconstruire une autre.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 74
    Par défaut
    Bonjour,
    Merci pour votre explication
    Je veux ajouter à mon code un test, SI EXIST.
    je ne trouve pas comment

    voici mon code:
    l'erreur dans la ligne en rouge
    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
    StringBuilder insertCmd = new StringBuilder();
    
            string line;
            string[] myData;
            string[] delimiter = { "," };
    
            // Read the file and display it line by line.
            System.IO.StreamReader file = new System.IO.StreamReader("c:\\air.stat");
            while ((line = file.ReadLine()) != null)
            {
                myData = line.Split(delimiter, StringSplitOptions.None);
    
                insertCmd.Append("INSERT INTO airnode VALUES(");
                insertCmd.Append("'" + myData[0] + "', ");
                insertCmd.Append(myData[1] + ", ");
                insertCmd.Append(myData[2] + ", ");
                insertCmd.Append(myData[3] + ", ");
                insertCmd.Append(myData[4] + ", ");
                insertCmd.Append(myData[5] + ", ");
                insertCmd.Append(myData[6] + ", ");
                insertCmd.Append(myData[7] + ", ");
                insertCmd.Append(myData[8] + ") ");
            }
    
            file.Close();
            
            //SqlConnection con = new SqlConnection(@"Data Source=AMINOS\SQLEXPRESS;Initial Catalog=MonitoringDB;Integrated Security=True;MultipleActiveResultSets=True");
            SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SecurityTutorials.mdf;Integrated Security=True;User Instance=True");
            SqlCommand cmd;
            con.Open();
            cmd = new SqlCommand(insertCmd.ToString(), con);
            cmd.CommandType = CommandType.Text;
            int affectedRows = cmd.ExecuteNonQuery();
            con.Close();
            break;
    merci de m'aider

Discussions similaires

  1. [C#] Problème duplication intempestive dans treeview
    Par LE NEINDRE dans le forum ASP.NET
    Réponses: 6
    Dernier message: 12/06/2006, 10h23
  2. [MySQL] problème ajout donnée dans BDD via php
    Par Skeud007 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 29/05/2006, 23h41
  3. [SQL] Moteur de recherche problème affichage donnée dans select
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 07/04/2006, 20h27
  4. [débutant] problème affichage données table ds TDBGrid
    Par lidouka dans le forum Composants VCL
    Réponses: 1
    Dernier message: 16/12/2005, 13h50
  5. problème ajout données avec db.execute et access
    Par Dauphind dans le forum Access
    Réponses: 2
    Dernier message: 29/11/2005, 12h03

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