Exception non comprise C# SQL Server

Résolu
Fo0Zie Messages postés 95 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 8 juin 2009 - 29 janv. 2009 à 09:14
Fo0Zie Messages postés 95 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 8 juin 2009 - 29 janv. 2009 à 12:04
Bonjour,

J'ai un formulaire d'insertion d'utilisateurs et lorsque je clique sur le bouton valider j'ai une exception généré. Je ne la comprend pas. Je pense que celle-ci vient de ma requête INSERT car quand je l'execute sur SQL Server 2005 j'ai la même erreur.

+        $exception    {"Le nom "Association" n'est pas autorisé dans ce contexte. Les expressions valides sont des constantes, des expressions constantes et (dans certains contextes) des variables. Les noms de colonnes ne sont pas autorisés."}    System.Exception {System.Data.SqlClient.SqlException}

A savoir que le nom "Association" est le titre de l'utilisateur qui saisi dans une textbox.

Voici mon code :

protected void imgBtnValider_Click(object sender, ImageClickEventArgs e)
        {
            string titre, nom, prenom, email, login, mdp, statut;
            SqlCommand cmd;

            // Récupération des champs saisis dans des variables
            titre = this.DropDownListTitre.SelectedValue.ToString();
            nom = this.txtBoxNom.Text;
            prenom = this.txtBoxPrenom.Text;
            email = this.txtBoxEmail.Text;
            login = this.txtBoxMdp.Text;
            mdp = this.txtBoxMdp.Text;
            statut = this.DropDowListStatut.SelectedValue.ToString();
            
            // Commande SQL
            String sql = "INSERT INTO users(use_titre, use_nom, use_prenom, use_email, use_login, use_pass, use_statut, use_droits)VALUES(" + titre.ToString() + "," + nom.ToString() + "," + prenom.ToString() + "," + email.ToString() + "," + login.ToString() + "," + mdp.ToString() + "," + statut.ToString() + "," + "Utilisateur" + ")";

            //Ouverture de la connection et exécution
            cnn.Open();
            cmd= new SqlCommand(sql, cnn);

            // Exécution de la requête
            cmd.ExecuteNonQuery();
            cnn.Close(); 
        }

Je me demande si cette erreur n'est pas du au faite que ma clef primaire est un champ identy(1,1), mais je ne le spécifie pas dans ma clause INSERT INTO.

Bref, je suis perdu, merci d'avance de votre aide.
A voir également:

5 réponses

Fo0Zie Messages postés 95 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 8 juin 2009 1
29 janv. 2009 à 10:45
A la place j'ai utilisé une requête paramétré et plus de problème.
3
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
29 janv. 2009 à 10:45
Hello,

Ce n'est pas à cause de Identity, mais parce qu ta requête est mal formattée.
Si tu met un break point dans ton code pour regarder la requête, et que tu essaie de l'éxécuter dans ta base, tu verras qu'elle ne marche pas.

Je te conseille vivement d'essaier avec des requêtes paramétrées.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
29 janv. 2009 à 10:45
Salut,

Il manque les ' dans ta chaine SQL

NB il faut les doubler dans le texte

exemple l'avion --> l''avion

Mais le plus propre est de passé par les requetes parametrées
qui gere ce probleme et les problemes de typage
et en plus accelere les requetes.

Bref recommandé.?
3
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
29 janv. 2009 à 10:49
Le temps d'écrire, et tu as trouvé la solution.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fo0Zie Messages postés 95 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 8 juin 2009 1
29 janv. 2009 à 12:04
Merci SharpMao et nhervagault !

En effet, je ne sais pas pourquoi je n'ai pas pensé avant à la requête paramétré. Je suis trop buté sur mon projet ASP.net (qui est tout nouveau pour moi) et j'en oubli le C#.
0