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 :

c# csv, et sql


Sujet :

C#

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Par défaut c# csv, et sql
    Bonjour à tous et toutes,
    je bloque sur la solution pour importer une table csv de 40 champs dans un programme c# et le traiter en sqlCE par la suite.
    1/ Comment ouvrir un fichier en c#
    2/ Comment creer les lignes.
    Merci d'avance.

  2. #2
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Bonjour,

    - La première chose à faire est de charger les données du fichier csv dans un DataTable.
    - Ensuite vous créer une deuxième connexion et vous parser les données du datatable pour effectuer les INSERT dans la db sqlCE.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Par défaut
    Comment utiliser une datatable ?

    J'ai créé la requete suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    INSERT INTO Aliment
                             (ORIGGPFR, ORIGFDCD, ORIGFDNM, Sodium, Fer, Proteines, [Proteines brutes], Glucides, Sucres, [Energie(kj/100g)], [Energies(kcalories/100g)], Fibres, Eau, 
                             Lipides, [AG Satures], [Vitamine D], [Vitamine E ], [Vitamine K ], [Vitamine C ], [Vitamine B2 ], [Vitamine B3 ], [Vitamine B5 ], [Vitamine B6 ], [Vitamine B12 ], 
                             [Vitamine B9 ], [Alcool ], [Cholestérol ])
    VALUES        ('Abats', 40003, 'Cervelle. agneau. cuite', '130 ', '3.53 ', '10.8 ', '10.8', '0.8', '-', '523', '126', '0', '77.3', '8.8', '2.6', '-', '-', '-', '12', '0.24', '2.47', '0.99', '0.11', '9.25', '5', '0', '2080')
    A l’exécution, j'ai une erreur : "les données ont été tronquées"

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Par défaut
    Voici la requete en c# :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    commande.CommandText = "INSERT INTO Aliment (ORIGGPFR, ORIGFDCD, ORIGFDNM, Sodium, Fer, Proteines, [Proteines brutes], Glucides, Sucres, [Energie(kj/100g)], [Energies(kcalories/100g)], Fibres, Eau, Lipides, [AG Satures], [Vitamine D], [Vitamine E ], [Vitamine K ], [Vitamine C ], [Vitamine B2 ], [Vitamine B3 ], [Vitamine B5 ], [Vitamine B6 ], [Vitamine B12 ], [Vitamine B9 ], [Alcool ], [Cholestérol ]) VALUES('" 
                        + data[1] + "'," + data[2] + ", '" + data[3] + "', '" + data[4] + "', '" + data[10] + "','" + data[15] + "', '" + data[16] + "', '" + data[17] + "', '" + data[18] + "', '" + data[22] + "', '" + data[23] + "', '" + data[25] + "', '" + data[26] + "', '" + data[27] + "', '" + data[28] + "', '" + data[47] + "', '" + data[48] + "', '" + data[49] + "', '" + data[50] + "', '" + data[52] + "', '" + data[53] + "', '" + data[54] + "', '" + data[55] + "', '" + data[56]
                        + "', '" + data[57] + "', '" + data[58] + "', '" + data[60] + "')";

  5. #5
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Bonjour,

    Wouah, tu fais le concours de la concaténation de chaîne la plus longue du monde ?

    Etant donné la manière dont tu procèdes, il est normal que tu aies des erreurs. Regarde du côté des requêtes paramétrées, cela t'évitera bien des ennuis de concaténation.

  6. #6
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    + 1 avec calagan99.

    Sinon peux tu nous donner le schéma de ta table Aliment (Nom des champs, types, et tailles)
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Par défaut
    La table contient 1/3 des champs de cette table :
    http://www.anses.fr/TableCIQUAL/
    tous sont des nvarchar a part la clé primaire data[2] qui est un int

  8. #8
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    D'accord, je viens de jeter un coup d’œil au fichier csv dispo sur le site ainsi que à la base de données. Je suppose donc que le fichier .csv dont vous récupérer les données proviennent de cette source, et au vu de votre requête, vous essayer de faire un insert des données dans une autre base de données (donc en SqlCe).

    Ce qui m’intéresserait de voir c'est le schéma de cette base de destination.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Par défaut
    Comment je peux faire pour l'exporter ?
    Je la recopie manuellement ?

  10. #10
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    Si ça peut t'aider voilà une classe que j'ai faite qui permet l'insertion, la lecture la supression dans une bdd SQL ServerCE:
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
        public class PersonneRepository : IPersonneRepository
        {
     
            private string ConnectionString
            {
                get
                {
                    return Properties.Settings.Default.PersonneConnectionString;
                }
            }
     
            public int AjouterPersonne(Personne personne)
            {
                int result = 0;
     
                using (SqlCeConnection con = new SqlCeConnection(ConnectionString))
                {
                    SqlCeCommand commande = AjouterPersonneBDD(personne, con);
                    con.Open();
                    result = commande.ExecuteNonQuery();
                }
     
                return result;
            }
     
     
     
            public int AjouterPersonne(List<Personne> personnes)
            {
                int result = 0;
     
                using (SqlCeConnection con = new SqlCeConnection(ConnectionString))
                {
                    con.Open();
                    foreach (var item in personnes)
                    {
                        SqlCeCommand commande = AjouterPersonneBDD(item, con);
                        result += commande.ExecuteNonQuery();
                    }
                }
                return result;
            }
     
            public Personne ObtenirParId(int id)
            {
                Personne personne = new Personne();
                using (SqlCeConnection con = new SqlCeConnection(ConnectionString))
                {
                    string requete = "Select * from personne where Id=@id";
                    SqlCeParameter paramId = new SqlCeParameter("@id", id);
                    SqlCeCommand commande = con.CreateCommand();
                    commande.CommandText = requete;
                    commande.Parameters.Add(paramId);
                    con.Open();
                    using (SqlCeDataReader rd = commande.ExecuteReader())
                    {
                        while (rd.Read())
                        {
                            personne = CreerPersonne(rd);
                        }
                    }
                }
                return personne;
            }
     
            public List<Personne> ObtenirTous()
            {
                List<Personne> personnes = new List<Personne>();
                using (SqlCeConnection con = new SqlCeConnection(ConnectionString))
                {
                    string requete = "Select * from personne";
     
                    SqlCeCommand commande = con.CreateCommand();
                    commande.CommandText = requete;
     
                    con.Open();
     
                    using (SqlCeDataReader rd = commande.ExecuteReader())
                    {
                        while (rd.Read())
                        {
                            Personne personne = CreerPersonne(rd);
                            personnes.Add(personne);
                        }
                    }
                }
                return personnes;
            }
     
            private Personne CreerPersonne(SqlCeDataReader reader)
            {
                Personne personne = new Personne();
     
                int indexColonneId = reader.GetOrdinal("id");
                if (!reader.IsDBNull(indexColonneId))
                {
                    personne.Id = reader.GetInt32(indexColonneId);
                }
                //personne.Id = (int)reader["id"];
                personne.Nom = reader["nom"].ToString();
                personne.Prenom = reader["prenom"].ToString();
                personne.DateDeNaissance = (DateTime)reader["datedenaissance"];
                personne.VilleDeNaissance = reader["villedenaissance"].ToString();
     
                return personne;
            }
     
     
            private static SqlCeCommand AjouterPersonneBDD(Personne personne, SqlCeConnection con)
            {
                string requete = "Insert into personne(nom,prenom,datedenaissance,villedenaissance) values(@nom,@prenom,@datedenaissance,@villedenaissance)";
                SqlCeParameter paramNom = new SqlCeParameter("@nom", personne.Nom);
                SqlCeParameter paramPrenom = new SqlCeParameter("@prenom", personne.Prenom);
                SqlCeParameter paramDate = new SqlCeParameter("@datedenaissance", personne.DateDeNaissance);
                SqlCeParameter paramVille = new SqlCeParameter("@villedenaissance", personne.VilleDeNaissance);
                SqlCeCommand commande = con.CreateCommand();
                commande.CommandText = requete;
                commande.Parameters.Add(paramNom);
                commande.Parameters.Add(paramDate);
                commande.Parameters.Add(paramPrenom);
                commande.Parameters.Add(paramVille);
                return commande;
            }
     
     
     
            public int ObtenirNbPersonne()
            {
                int nbPersonne = 0;
                using (SqlCeConnection con = new SqlCeConnection(ConnectionString))
                {
                    string requete = "Select count(*) from personne";
     
                    SqlCeCommand commande = con.CreateCommand();
                    commande.CommandText = requete;
     
                    con.Open();
     
                    nbPersonne = (int)commande.ExecuteScalar();
                }
                return nbPersonne;
            }
     
     
            public int EffacerDoublons(List<int> id)
            {
                int result = 0;
                using (SqlCeConnection con = new SqlCeConnection(ConnectionString))
                {
                    con.Open();
                    foreach (var item in id)
                    {
                        SqlCeCommand commande = SupprimerDoublonBDD(item, con);
                        result += commande.ExecuteNonQuery();
                    }
                }
                return result;
            }
     
            private static SqlCeCommand SupprimerDoublonBDD(int id, SqlCeConnection con)
            {
                string requete = "Delete from personne where Id=@id";
                SqlCeParameter paramId = new SqlCeParameter("@id", id);
                SqlCeCommand commande = con.CreateCommand();
                commande.CommandText = requete;
                commande.Parameters.Add(paramId);
                return commande;
            }
     
     
        }
    et voici la classe personne au cas ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        public class Personne
        {
            public int Id { get; set; }
     
            public string Nom { get; set; }
     
            public string Prenom { get; set; }
     
            public DateTime DateDeNaissance { get; set; }
     
            public string VilleDeNaissance { get; set; }
     
        }

  11. #11
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Par défaut
    Merci pour les classes, je vais essayer de les utiliser.

  12. #12
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Si ta db fait moins que 2 Mb tu peux la zippé et l'attaché à une réponse à la discussion.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  13. #13
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Par défaut
    Je l'ai zipé et attaché, elle est vide par contre...
    Fichiers attachés Fichiers attachés

  14. #14
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Bonsoir,

    Je ne connais pas bien SqlServerCe, par contre dans le fichier .cs composant votre Zip je ne vois rien qui réfère une table Aliment comme dans votre requête, est ce normal.

    Un petit truc qui prend du temps mais qui pourrais aussi vous aider, c'est d'essayer des inserts mais en commençant avec 5 champs par exemple, puis vous en mettez quelque un de plus, histoire de localiser celui qui pose problème.

    Je jetterais un œil plus approfondis demain au fichier que vous m'avez envoyé
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  15. #15
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Par défaut
    J'ai envoyé le projet complet
    Fichiers attachés Fichiers attachés

  16. #16
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Bonsoir,

    Programme déja bien avancé et pas fait du tout. Mais qu'elle est la manipulation à réaliser pour provoquer votre erreur "les données ont été tronquées" ?
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  17. #17
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Par défaut
    J'ai envoyé le mauvais projet, voici le bon en pj
    Fichiers attachés Fichiers attachés

  18. #18
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Je me disais bien que je trouvais pas votre requête ;-) Je jetterais un œil ce soir
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  19. #19
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Par défaut
    Merci d'avance !

  20. #20
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Alors ca n'a pas été simple mais j'ai un début d'explication à ton problème.

    Tout d'abord je n'ai pas su afficher le schéma de ta DB à l'aide de Visual Studio 2012 (Alors que cela fonctionne dans le premier projet que tu m'as envoyé mais je ne suis pas encore habitué avec cette nouvelle version donc cela vient peut-être de moi).

    Donc pour avoir un aperçu des colonnes se trouvant dans la table Aliment j'ai utilisé le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     SqlCeDataAdapter da = new SqlCeDataAdapter("select * from Aliment", connexion);
                DataSet ds = new DataSet();
     
                da.Fill(ds, "Aliment");
    qui m'a permet de charger le contenu de la table ainsi que son schéma dans un datatable contenu dans le dataset. Ce qui m'a permet d'explorer le schéma en passant en debug et en utilisant un espion.

    Pour le reste plusieurs remarques :

    - Pour la concaténation d'un certain nombre de string, plutôt passé par un StringBuilder. Tu gagneras en performance surtout que dans ce cas ci c'est dans une boule.
    - Je ne comprend pas pourquoi il y a tant de '\n' dans la constitution de ta requête. Il y a 27 champs que tu essaies d'ajouter et 27 variables data[x].
    - Si tu as créé ton schéma de table toi même, même si c'est possible, éviter les espaces dans le nom des champs, et surtout les caractères spéciaux comme les caractères accentués comme dans [Cholestérol] ou [Energies(kcalories/100g)].
    - Placer ton code dans un try catch pour trapper l'erreur et analyser le contenu de l'exception t'aurais mis sur la voie (perso m'a fallu le temps aussi pour prendre l'habitude de le faire).
    - Comme on te l'a préciser dans un poste précédent, utiliser les requêtes paramétrés peut t'éviter bcp de problème et rendre ton code plus lisible.

    Au sinon j'ai remanié un peu ton code sans rajouter pour l'instant l'utilisation du StringBuilder et des requêtes paramétrées, car dans ce cas cela n'aurait pas aidé :

    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
    57
    58
    59
    60
    61
     
                        commande.CommandText = "INSERT INTO Aliment (ORIGGPFR,ORIGFDCD,ORIGFDNM,Sodium,Fer,Proteines,[Proteines brutes], Glucides, Sucres,";
                        // Colonnes qui n'existe pas dans la DB : [Vitamine D], [Vitamine E ], [Vitamine K ], [Vitamine C ], [Vitamine B2 ], [Vitamine B3 ],
                        // [Vitamine B5 ], [Vitamine B6 ],[Vitamine B12 ], [Vitamine B9 ],[Alcool], [Cholestérol]
                        commande.CommandText += "[Energie(kj/100g)], [Energies(kcalories/100g)],Fibres,Eau,Lipides,[AG Satures]) ";
     
                        commande.CommandText +="VALUES(";
                        // ORIGGPFR
                        commande.CommandText += "'" + data[1].ToString() + "',";
                        // ORIGFDCD
                        commande.CommandText += "'" + data[2].ToString() + "',";
                        // ORIGFDNM
                        commande.CommandText += "'" + data[3].ToString() + "',";
                        // Sodium
                        commande.CommandText += "'" + data[4].ToString() + "',";
                        // Fer
                        commande.CommandText += "'" + data[10].ToString() + "',";
                        // Proteines
                        commande.CommandText += "'" + data[15].ToString() + "',";
                        // [Proteines brutes]
                        commande.CommandText += "'" + data[16].ToString() + "',";
                        // Glucides
                        commande.CommandText += "'" + data[17].ToString() + "',";
                        // Sucres
                        commande.CommandText += "'" + data[18].ToString() + "',";
                        // [Energie(kj/100g)]
                        commande.CommandText += "'" + data[22].ToString() + "',";
                        // [Energies(kcalories/100g)]
                        commande.CommandText += "'" + data[23].ToString() + "',";
                         // FibreS
                        commande.CommandText += "'" + data[25].ToString() + "',";
                        // Eau
                        commande.CommandText += "'" + data[26].ToString() + "',";
                        // Lipides 
                        commande.CommandText += "'" + data[27].ToString() + "',";
                        // [AG Satures]
                        commande.CommandText += "'" + data[28].ToString() + "',";
                        // [Vitamine D]
                        // commande.CommandText += "'" + data[47].ToString() + "'";
                        // [Vitamine E ]
                        // commande.CommandText += "'" + data[48].ToString() + "',";
                        // [Vitamine K ]
                        // commande.CommandText += "'" + data[49].ToString() + "',";     
                        // [Vitamine C ]
                        // commande.CommandText += "'" + data[50].ToString() + "',";    
                        // [Vitamine B2 ]
                        // commande.CommandText += "'" + data[52].ToString() + "',";    
                        // [Vitamine B3 ]
                        // commande.CommandText += "'" + data[53].ToString() + "',";    
                        // [Vitamine B5 ]
                        // commande.CommandText += "'" + data[54].ToString() + "',";
                        // [Vitamine B6 ]
                        // commande.CommandText += "'" + data[55].ToString() + "',";
                        // [Vitamine B12 ]
                        // commande.CommandText += "'" + data[56].ToString() + "',";
                        // [Vitamine B9 ]
                        // commande.CommandText += "'" + data[57].ToString() + "',";
                        // [Alcool ]
                        // commande.CommandText += "'" + data[58].ToString() + "'";
                        // [Cholestérol ]
                        //commande.CommandText += "'" + data[60].ToString() + "'";
    Comme tu le remarqueras dans le début de la création de la requête, un certain nombre des champs que tu essaies de remplir n'existe simplement pas dans ta table aliment. Les lignes qui devait remplir la clauses Values sont commentées.

    Cette requête s'exécute mais crée encore des exceptions dans certains cas. Je n'ai pas eu le temps d'analyser, mais je pense que c'est du à la méthode ToString utilisé sur des champs vide.

    Voila un début d'explication pour tes soucis, je pense encore un peu gratter mais la il est un peu tard ;-) mais je pense que tu as matière à avancer vers la solution.

    En espérant avoir été clair dans mes explications.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Fichier csv] Requête SQL
    Par smutmutant2003 dans le forum Outils
    Réponses: 6
    Dernier message: 08/07/2013, 15h26
  2. Réponses: 6
    Dernier message: 20/04/2011, 12h11
  3. csv et sql server 2005
    Par phoenix345 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 14/02/2010, 21h30
  4. Générer fichier CSV PL-SQL
    Par refrider dans le forum SQL
    Réponses: 5
    Dernier message: 31/08/2007, 15h36

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