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

Windows Forms Discussion :

probléme insertion dans une bd sql server.


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Points : 37
    Points
    37
    Par défaut probléme insertion dans une bd sql server.
    Bonjour,

    Mes instructions d'insertion se deroulent normalement(le nombre de lignes ajoutées=1)mais quand je consulte ma table dans la base de données sql server rien ne se passe

    Quelqu'un peut il m'aider et merci

    Voici mon 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
    35
    36
    37
    38
    39
    40
    41
    using System;
    using System.Collections.Generic;
    using System.Data.SqlServerCe;
    using System.Configuration;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
     
    namespace gestion
    {
        public partial class Form4 : Form
        {
            public Form4()
            {
                InitializeComponent();
            }
     
            private void Ajouter_Click(object sender, EventArgs e)
            {
     
     
                string connectionString = null;
     
                connectionString =     ConfigurationManager.ConnectionStrings["dbSqlServerCe"].ConnectionString;
     
                SqlCeConnection MaConn = new SqlCeConnection(connectionString);
     
                MaConn.Open();
                MessageBox.Show("ma conn =" + MaConn);
     
                string requete = "insert into article(code,libelle,prix,fournisseur) values  ('1','lib',90,'fourn')";
     
                SqlCeCommand sqlCommand = new SqlCeCommand(requete, MaConn);
                int nbLignes = sqlCommand.ExecuteNonQuery();
     
                MessageBox.Show("nbLignes:" + nbLignes.ToString());
     
            }

    Merci d'avance

  2. #2
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Bonjour.

    J'utilise un code similaire et j'ai une ligne en plus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SqlCeCommand sqlCommand = new SqlCeCommand(requete, MaConn);
     
    sqlCommand.Connection.Open();
     
    int nbLignes = sqlCommand.ExecuteNonQuery();
    Par contre j'ai un doute pour ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    values ('1','lib',90,'fourn'); -> values ('1',"lib",90,"fourn");
    Normalement, les chaînes de caractères c'est avec le signe ", voir \" pour que ça passe. Mais je n'utilise pas ce procédé, alors je peux me tromper.

  3. #3
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut

    Ton code est correct
    A mon avis tu ne consulte pas la bonne base ou la bonne table
    Ou tu ne rafraichit pas ta requete de vérification
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  4. #4
    Membre régulier
    Homme Profil pro
    Developpeur .NET et Administrateur de bases de données
    Inscrit en
    Décembre 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Developpeur .NET et Administrateur de bases de données
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2010
    Messages : 49
    Points : 79
    Points
    79
    Par défaut Type du champs code
    Bonjour,
    si le champs "code" est de type chaine de caractère ça devrait marcher, sinon je pense que ta requete devrait ressembler à ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                string requete = "insert into article(code,libelle,prix,fournisseur) values  (1,'lib',90,'fourn')";
    Christian KAMUSALU
    IT Developper / Business Analyst / Project Manager

  5. #5
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Citation Envoyé par moldavi Voir le message
    Bonjour.

    J'utilise un code similaire et j'ai une ligne en plus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SqlCeCommand sqlCommand = new SqlCeCommand(requete, MaConn);
     
    sqlCommand.Connection.Open();
     
    int nbLignes = sqlCommand.ExecuteNonQuery();
    Ce n'est pas une ligne en plus, c'est totalement équivalent. la propriété Connection de l'objet SqlCommand est l'instance de SqlConnection qui est passé dans le constructeur de SqlCommand, donc si tu as déjà fait .Open() sur la connexion, pas besoin de le refaire à travers la commande.

    Citation Envoyé par moldavi Voir le message
    Par contre j'ai un doute pour ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    values ('1','lib',90,'fourn'); -> values ('1',"lib",90,"fourn");
    Normalement, les chaînes de caractères c'est avec le signe ", voir \" pour que ça passe. Mais je n'utilise pas ce procédé, alors je peux me tromper.
    Non, le dialecte MS-SQL (vu qu'il s'agit d'un SqlServer) utilise des quotes simples pour les données non numériques. C'est à dire qu'il faut utiliser des quotes simples pour les caractères, les chaines, des dates, les uniques identifiers, ...

    Je ne vois pas d'erreur plus que ca à part qu'il n'y a aucune gestion d'exception, d'erreur, pas de dispose et/ou using non plus.

    On ne voit pas non plus la chaine de connexion qui contient peut-être des options particulières ? Bien que j'y crois peu.

    Au final je penche plutôt pour la même chose qu'olibara : si l'ExecuteNonQuerry retourne 1 c'est qu'il regarde probablement la mauvaise base/table.

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Bizarre, bizarre ....

    Peux tu poster le DDL de la table article à tout hasard ?

    Ainsi que la chaîne de connexion à ta base Sql Server Ce.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


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

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  7. #7
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Je vois une chose !

    Il n'y a pas de Close de la connexion
    Il se pourrait que l'insert ne soit pas encore committé dans la db si Tipa42 vas y voir juste apres le ExecuteNonQuery
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  8. #8
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par olibara Voir le message
    Je vois une chose !

    Il n'y a pas de Close de la connexion
    Il se pourrait que l'insert ne soit pas encore committé dans la db si Tipa42 vas y voir juste apres le ExecuteNonQuery
    Normalement, avec SSCE, ça ne pose pas de problème (ou alors ce serait un problème spécifique à la version desktop).

    Ceci dit, il faudrait voir comment il procède à la lecture de sa table : si il le fait sur une connexion ouverte précédemment à l 'instanciation de la connexion d'écriture, et a fortiori dans un domaine d'application différent, il se peut tout simplement que sa lecture ne soit pas bonne (on est en CE, pas en serveur ici, il faut se le rappeler).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


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

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

Discussions similaires

  1. INSERT dans une DB SQL SERVER 2008
    Par Goltar dans le forum ASP
    Réponses: 1
    Dernier message: 30/12/2011, 13h17
  2. problème d'insertion dans une base SQL Server 2000 Via un trigger
    Par Alexandre_g dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/04/2009, 15h30
  3. probleme d'insertion dans une base sql server
    Par brajae85 dans le forum ASP.NET
    Réponses: 18
    Dernier message: 17/09/2008, 23h09
  4. Réponses: 2
    Dernier message: 15/11/2007, 17h43
  5. problème d'insertion sur une BD SQL server 2000
    Par offspring140 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 22/05/2006, 11h11

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