Exception non comprise C# SQL Server [Résolu]

Fo0Zie 95 Messages postés lundi 11 février 2008Date d'inscription 8 juin 2009 Dernière intervention - 29 janv. 2009 à 09:14 - Dernière réponse : Fo0Zie 95 Messages postés lundi 11 février 2008Date d'inscription 8 juin 2009 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Fo0Zie 95 Messages postés lundi 11 février 2008Date d'inscription 8 juin 2009 Dernière intervention - 29 janv. 2009 à 10:45
3
Merci
A la place j'ai utilisé une requête paramétré et plus de problème.

Merci Fo0Zie 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de Fo0Zie
Meilleure réponse
SharpMao 1025 Messages postés mardi 4 février 2003Date d'inscription 7 juin 2010 Dernière intervention - 29 janv. 2009 à 10:45
3
Merci
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)

Merci SharpMao 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de SharpMao
Meilleure réponse
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 29 janv. 2009 à 10:45
3
Merci
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é.?

Merci nhervagault 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de nhervagault
SharpMao 1025 Messages postés mardi 4 février 2003Date d'inscription 7 juin 2010 Dernière intervention - 29 janv. 2009 à 10:49
0
Merci
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)
Commenter la réponse de SharpMao
Fo0Zie 95 Messages postés lundi 11 février 2008Date d'inscription 8 juin 2009 Dernière intervention - 29 janv. 2009 à 12:04
0
Merci
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#.
Commenter la réponse de Fo0Zie

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.