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 :

insertion de données dans une base de données SQLServer


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Par défaut insertion de données dans une base de données SQLServer
    Bonjour,

    J'aurais besoin d'un petit coup de main (je sais j'ai souvent besoin d'un petit coup de main ces derniers temps, désolée ).

    Cependant je pense m'en être mieux tirer, car j'ai une fonctionnalité qui devrais fonctionner si je n'avais pas cette erreur (indiqué dans le code en violet) :
    "L'exception SQLException n'a pas été géré par le code utilisateur :
    Syntaxe incorrecte vers 'value'."
    (Pourvu que ce ne soit pas une faute toute bête. )

    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
    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
     protected void insertion_donnee(object sender, EventArgs e)
            {   
                string code = tb_codeCli.Text;
                string nom = tb_nomCli.Text;
                string prenom = tb_PnomCli.Text;
                string login = tb_loginCli.Text;
                string mdp = tb_mdpCli.Text;
                string droit = tb_nivDroitCli.Text;
    
    
                SqlConnection connexion = new SqlConnection(System.Configuration.ConfigurationManager.
                ConnectionStrings["connectString1"].ConnectionString);
                connexion.Open();
    
                
    // requête Insert/Update des informations dans la table du mois en cours REPLACE autorisé avce MySql ;)
    
    
     string query = "INSERT INTO personne value (@code, @nom, @prenom, @login, @mdp, @droit)";
               
    
    using (SqlConnection Connection = new SqlConnection(System.Configuration.ConfigurationManager.
                ConnectionStrings["connectString1"].ConnectionString))
    
    {
    
         SqlCommand cmdInsert = new SqlCommand(query, Connection);
    
        // commande SQL insertion dans table
    
     
        cmdInsert.CommandText = query;
    
     
        // "paramètrage" des paramètres
    
        cmdInsert.Parameters.Add("@code", SqlDbType.VarChar, 10); // Type à remplacer par le type adéquat
    
        cmdInsert.Parameters.Add("@nom", SqlDbType.VarChar, 20); // Type à remplacer par le type adéquat
    
        cmdInsert.Parameters.Add("@prenom", SqlDbType.VarChar, 20); // Type à remplacer par le type adéquat
    
        cmdInsert.Parameters.Add("@login", SqlDbType.VarChar, 10); // Type à remplacer par le type adéquat
    
         cmdInsert.Parameters.Add("@mdp", SqlDbType.VarChar, 5); // Type à remplacer par le type adéquat
    
         cmdInsert.Parameters.Add("@droit", SqlDbType.VarChar, 1); // Type à remplacer par le type adéquat
    
    
        // récupèration des valeurs des paramètres
    
         cmdInsert.Parameters["@code"].Value = "" + code + ""; // val1 peut-être une variable
    
         cmdInsert.Parameters["@nom"].Value = "" + nom + ""; // ...
    
         cmdInsert.Parameters["@prenom"].Value = "" + prenom + "";
    
         cmdInsert.Parameters["@login"].Value = "" + login + "";
    
         cmdInsert.Parameters["@mdp"].Value = "" + mdp + "";
    
         cmdInsert.Parameters["@droit"].Value = "" + droit + "";
    
    
     
        // connexion
    
        Connection.Open();
    
       if (Connection.State == System.Data.ConnectionState.Open)
    
        // si la connexion est ouverte
    
        {
    
            
            // et on fait l'insertion
            cmdInsert.ExecuteNonQuery();
    
            // fermeture connection
    
            Connection.Close();
    
        }
    
            }
        }
        }
    En vous remerciant.

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

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Euh ... désolé, mais j'ai un peu de mal à comprendre : dans le titre tu parles d'un problème d'accès à MySql et tu balances un code qui accède à une base Sql Server. (objet SqlConnection, etc ....)

    Donc, quelle est la bonne version ?

  3. #3
    Membre éclairé Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Par défaut
    Désolée si je me suis mal exprimée.

    Je n'ai pas de problème pour accéder à ma base de données SQLServer, j'ai des difficultés en ce qui concerne l'insertion de données dans cette base de données SQLServer, d'où l'expression en violet dans mon code et son message d'erreur.

    Est-ce plus clair ?

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

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par lou87 Voir le message
    Désolée si je me suis mal exprimée.

    Je n'ai pas de problème pour accéder à ma base de données SQLServer, j'ai des difficultés en ce qui concerne l'insertion de données dans cette base de données SQLServer, d'où l'expression en violet dans mon code et son message d'erreur.

    Est-ce plus clair ?
    Ok, mais change le titre dans ce cas, car tu mentionnes clairement MySql dedans, ce qui fait que quand on lit ton code qui est clairement spécialisé Sql Server, on a un peu de mal à faire la relation.

  5. #5
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Par défaut
    C'est la syntaxe de ta requête SQL qui n'est pas bonne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO "nom de table" ("colonne 1", "colonne 2", ...)
    VALUES ("valeur 1", "valeur 2", ...)

  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 : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par toopac Voir le message
    C'est la syntaxe de ta requête SQL qui n'est pas bonne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO "nom de table" ("colonne 1", "colonne 2", ...)
    VALUES ("valeur 1", "valeur 2", ...)
    Et la tienne est pire, car elle au moins essaye d'utiliser les requêtes paramétrées.

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

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Bon, le problème c'est la manière dont tu traite tes paramètres qui cloche.


    Il n'est pas nécessaire de concaténer des "" pour la propriétés Value, le framework s'en charge en fonction des types de paramètres.

  8. #8
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Et la tienne est pire, car elle au moins essaye d'utiliser les requêtes paramétrées.
    je donnais la syntaxe générale. Il manque un 's' à "value"...

  9. #9
    Membre éclairé Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Par défaut
    Merci beaucoup Bluedeep et toopac !

    Désolée pour le fait que j'ai mis MySQL au lieu de SQLServer, disons que pendant des années j'ai utilisé des bases de données MySQL, et depuis une semaine j'utilise une base de données SQLServer.... Donc quand je parlais de base de données, j'avais le réflexe MySQL...

    Et je suis désolée aussi pour vous avoir fait perdre votre temps, car effectivement l'erreur venait tout simplement de mon oublie du 's' à 'values'...

    J'ai honte.

    Deuxième fois que je fais un(e) erreur/oubli bête comme ça.

    Cependant je vous remercie beaucoup tout deux, pour m'avoir éviter de tourner en rond encore longtemps.

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

Discussions similaires

  1. inserer les données d'une base de données dans une autres?
    Par enstein8 dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 14/10/2011, 13h33
  2. insertion des blob dans une base de données
    Par ala1986 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 05/04/2009, 15h48
  3. Insertion d'Ip dans une base de données
    Par momoh dans le forum VB.NET
    Réponses: 1
    Dernier message: 19/02/2009, 16h16
  4. Réponses: 2
    Dernier message: 18/03/2007, 19h02
  5. [MySQL] Insertion d'image dans une base de données
    Par dragonfly dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/03/2006, 14h59

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