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 :

Probléme insertion valeurs d'un tableau


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Par défaut Probléme insertion valeurs d'un tableau
    Bonjour,

    Débutant en c#,

    Je lis un enregistrement dans une table que je récupere dans un table afin de l'insérer dans une autre table.

    La lecture se passe bien ainsi que le remplissage du tableau mais quand je veux inserer les valeurs de ce tableau, j'ai le message d'erreur suivant:

    Une erreur s'est produite lors de l'analyse de la requête. [ Token line number = 1,Token line offset = 40,Token in error = 0 ]
    les deux tables sont identiques


    numero:entier
    code:varchar
    libelle:varchar
    prix:money
    quantite:entier
    escompte:entier
    Montant:money


    voici mon bout de code:

    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
    public void Archiver_Facture()
            {
                string connectionString = null;
        connectionString = configurationManager.ConnectionStrings["dbSqlServerCe"].ConnectionString;
     
                SqlCeConnection MaConn = new SqlCeConnection(connectionString);
     
                MaConn.Open();  
     
                SqlCeCommand cd = new SqlCeCommand("select * from facture ", MaConn);
                SqlCeDataReader rd = cd.ExecuteReader();
     
                string[] colonnes  = new string[7];
     
                while (rd.Read())
                {
                    for (int i = 0; i < rd.FieldCount; i++) 
                    {
                       colonnes[i]=rd[i].ToString();
     
     
                    }
                }
                string requete = "insert into Facture_Archive values  
                                       (colonnes[0],colonnes[1],colonnes[2],colonnes[3],
                                        colonnes[4],colonnes[5],colonnes[6])";
     
                SqlCeCommand sqlCommand = new SqlCeCommand(requete, MaConn);
                int nbLignes = sqlCommand.ExecuteNonQuery();
                MessageBox.Show(" nbl:" + nbLignes);
     
     
     
            }

  2. #2
    Membre très actif Avatar de oussi
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 192
    Par défaut
    D’après ce que j'ai compris tu veux sélectionner toutes les lignes de la table facture et les insérer dans la table Facture_Archive, cependant avec ton code se n'est pas faisable car ton tableau ne pourra contenir qu'une seule ligne.

    Voici une petite référence sur les tableaux (et aussi un bon cours bien résumé sur C#) : ici
    Ensuite tu dois corriger ta requête d'insertion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    string requete = "insert into Facture_Archive values 
    ("+colonnes[0]+","+colonnes[1]+","+colonnes[2]+","+colonnes[3]+","+
    colonnes[4]+","+colonnes[5]+","+colonnes[6]+")";
    Maintenant, après avoir fait le tours des erreurs que ta commis, j'aimerai te proposer ma solution pour faire ce que tu veux :
    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
    public void Archiver_Facture()
    {
    string connectionString = configurationManager.ConnectionStrings["dbSqlServerCe"].ConnectionString;
     
    SqlCeConnection MaConn = new SqlCeConnection(connectionString);
    MaConn.Open();
     
    string queryTxt;
    int nbLignes;
     
    queryTxt="select * from facture ";
     
    SqlCeCommand cd = new SqlCeCommand(queryTxt, MaConn);
    SqlCeDataReader rd = cd.ExecuteReader();
     
    while (rd.Read())
    {
    //au fur et à mesure qu'on lis une ligne du rd en l'insère directement et ainsi de suite
     
    queryTxt="insert into Facture_Archive values ('"+ rd[0].ToString() +"','"+ rd[1].ToString() +"','"+ rd[2].ToString() +"','"+ rd[3].ToString()+"','"+ rd[4].ToString() +"','"+ rd[5].ToString() + "','" + rd[6].ToString() + "')";
     
    //execution de la commande
    SqlCeCommand sqlCommand = new SqlCeCommand(queryTxt, MaConn);
     
    //on incrémente de 1 pour compter le nombre de lignes insérées
    nbLignes++;
    }
     
    //affichage du nombre de ligne
    MessageBox.Show(" nbl:" + nbLignes);
     
    }
    Voilà pour moi, j’espère que j'ai été un peu clair

    bonne chance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème insertion valeurs négatifs XSU
    Par ramroum1986 dans le forum Oracle
    Réponses: 0
    Dernier message: 15/09/2011, 17h23
  2. problème de valeur dans un tableau se trouvant dans une liste
    Par alaninho dans le forum Général Python
    Réponses: 5
    Dernier message: 16/06/2011, 10h17
  3. Réponses: 1
    Dernier message: 04/05/2010, 11h47
  4. Problème pour forcer des valeurs d'un tableau
    Par n][co dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 25/04/2007, 20h59
  5. [Tableaux] Problème de valeur dans un tableau (array)
    Par Flushovsky dans le forum Langage
    Réponses: 15
    Dernier message: 24/03/2006, 13h56

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