Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/05/2011, 00h31   #1
Nouveau Membre du Club
 
Homme
Étudiant
Inscription : mars 2009
Messages : 69
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2009
Messages : 69
Points : 35
Points : 35
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
makin_toch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 08h51   #2
Membre Expert
 
Avatar de Nudger
 
Homme Thomas Arnaud
Directeur de projet
Inscription : octobre 2010
Messages : 452
Détails du profil
Informations personnelles :
Nom : Homme Thomas Arnaud
Âge : 36
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Directeur de projet
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2010
Messages : 452
Points : 1 012
Points : 1 012
Envoyer un message via Skype™ à Nudger
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.
__________________
www.nudge.org Surveillez et optimisez vos applications Java
Nudger est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/05/2011, 09h12   #3
Nouveau Membre du Club
 
Homme
Étudiant
Inscription : mars 2009
Messages : 69
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2009
Messages : 69
Points : 35
Points : 35
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 :
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
makin_toch est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h46.


 
 
 
 
Partenaires

Hébergement Web