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

ASP.NET Discussion :

Utilisation de requête paramétrées, erreur contenu textbox


Sujet :

ASP.NET

  1. #1
    Membre régulier Avatar de arkham55
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 179
    Points : 74
    Points
    74
    Par défaut Utilisation de requête paramétrées, erreur contenu textbox
    Bonsoir à tous et toutes,

    Vous allez bien?
    J'ai un petit soucis, j'ai voulu écrire une requête paramètrées mais je suis tombé sur des erreurs 'bizarres' :

    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
     
    Dim cnx As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=monchemin_vers_BD;Integrated Security=True;User Instance=True")
    Dim cmd As New SqlCommand
     
    Dim commentaire As String = txt_comm.Text
    Dim id_commenteur As Integer = Session("connectionId")
    Dim date_comm As Date = Now
     
    cmd.CommandText = "INSERT INTO [Commentaire]( [commentaire], [id_membre], [id_article], [date_commentaire]) VALUES (@commentaire, @id_membre, @id_article, @date_commentaire);"
                    With cmd
                        .Connection = cnx
                        .Parameters.Add(New SqlParameter("@commentaire", SqlDbType.Text))
                        .Parameters.Add(New SqlParameter("@id_membre", SqlDbType.Int))
                        .Parameters.Add(New SqlParameter("@id_article", SqlDbType.Int))
                        .Parameters.Add(New SqlParameter("@date_commentaire", SqlDbType.DateTime))
                    End With
                    With cmd
                        .Parameters("@commentaire").Value = commentaire
                        .Parameters("@id_membre").Value = CInt(id_commenteur)
                        .Parameters("@id_article").Value = CInt(id_rec)
                        .Parameters("@date_commentaire").Value = FormatDateTime(date_comm)
                    End With
     
                    Try
                        cnx.Open()
                        cmd.ExecuteNonQuery()
                        cnx.Close()
                    Catch err As SqlException
                        MsgBox("Erreur sql")
                        Response.Write(err.Message)
                    End Try
    Et cela me produit cette erreur :
    Le nom de variable '@commentaire' a déjà été déclaré. Les noms de variables doivent être uniques dans un lot de requêtes ou une procédure stockée.
    En essayant d'entrer ceci dans ma textbox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "Il y a de tout ici : ; , " ' = 
     
    =D"
    Pourtant je pense avoir bien déclaré ma requête, qu'en pensez-vous?
    C'est à ... que vous ... le plus de mystères.

  2. #2
    Membre régulier Avatar de arkham55
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 179
    Points : 74
    Points
    74
    Par défaut
    J'ai suivi les consignes de cet article bien écrit :
    http://webman.developpez.com/article...eter/vbnet/#L3
    C'est à ... que vous ... le plus de mystères.

  3. #3
    Membre régulier Avatar de arkham55
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 179
    Points : 74
    Points
    74
    Par défaut
    Il lance une exception mais pourtant le commentaire est ajouté, un nouveau tuple correct est bien créé.
    Je n'arrive pas à trouver où aurai-je défini @commentaire une fois de trop, il n'apparaît que 2 fois, à sa définition en tant que paramètre et à son initialisation...
    commentaire était de type String, contenant le contenant de ma textbox.
    Une idée?
    C'est à ... que vous ... le plus de mystères.

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Pourquoi tu utilises 2 instructions pour déclarer et pour initialiser ton DbParameter? Tu peux le faire en 1 fois

  5. #5
    Membre régulier Avatar de arkham55
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 179
    Points : 74
    Points
    74
    Par défaut
    J'ai bien compris ta proposition, mais comment je peux assigner mes valeurs directement?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Parameters.Add(New SqlParameter("@commentaire", SqlDbType.Text).Value = commentaire)
    Il y a un problème en faisant de cette manière =S
    C'est à ... que vous ... le plus de mystères.

  6. #6
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    C'est une surcharge du constructeur

  7. #7
    Membre régulier Avatar de arkham55
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 179
    Points : 74
    Points
    74
    Par défaut
    Après quelques recherches, merci =)
    C'est à ... que vous ... le plus de mystères.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/04/2010, 09h56
  2. Réponses: 3
    Dernier message: 27/01/2010, 15h29
  3. Utilisation de requêtes paramétrées dans Talend.
    Par BI-Ali dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 17/06/2009, 14h49
  4. Réponses: 7
    Dernier message: 11/10/2006, 14h35
  5. [ADO.Net][C#/Oracle] Comment utiliser une requête paramètrée ?
    Par kaboume dans le forum Accès aux données
    Réponses: 4
    Dernier message: 05/07/2005, 15h50

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