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

VB.NET Discussion :

probleme d'insertion dans une base de donnée [Débutant]


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 36
    Points : 0
    Points
    0
    Par défaut probleme d'insertion dans une base de donnée
    bonjour tout le monde,
    j'ai un petit problème d'insertion dans une base de donnée j'ai fais un contrainte entre le type de donnée dans la base et ce qui est écrit par utilisateur dans des textbox
    voila ce que je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "insert into ARTICLECASA values('" & TextBox1.Text & "', '" & TextBox2.Text & "' , '" & TextBox3.Text & "' , " & TextBox4.Text & ", " & TextBox5.Text & " , " & TextBox6.Text & " , '" & TextBox7.Text & "' ," & TextBox8.Text & ")'"
    textbox1 un varchar(11)
    textbox2 un varchar(11)
    textbox3 un varchar(11)
    textbox4 un smallint
    textbox5 un smallint
    textbox6 un smallint
    textbox7 un varchar
    textbox8 une smalldatetime
    merci de m'aider

  2. #2
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    On ne jouit bien que de ce qu’on partage.

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 36
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    j'ai esseyer avec cela ms ça me donne toujours un probleme
    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 ref As SqlParameter
                        ref = New SqlParameter("@AR_Ref", SqlDbType.VarChar)
                        ref.Value = TextBox1.Text
     
                        Dim design As SqlParameter
                        design = New SqlParameter("@AR_Design", SqlDbType.VarChar)
                        design.Value = TextBox2.Text
                        Dim codefam As SqlParameter
                        codefam = New SqlParameter("@FA_CodeFamille", SqlDbType.VarChar)
                        codefam.Value = TextBox3.Text
                        Dim uniteven As SqlParameter
                        uniteven = New SqlParameter("@AR_UniteVen", SqlDbType.SmallInt)
                        uniteven.Value = TextBox4.Text
                        Dim stok As SqlParameter
                        stok = New SqlParameter("@AR_SuitStok", SqlDbType.SmallInt)
                        stok.Value = TextBox5.Text
                        Dim horstat As SqlParameter
                        horstat = New SqlParameter("@AR_HorStat", SqlDbType.SmallInt)
                        horstat.Value = TextBox6.Text
     
                        Dim frs As SqlParameter
                        frs = New SqlParameter("@FORNISSEUR", SqlDbType.VarChar)
                        frs.Value = TextBox7.Text
     
                        Dim date1 As SqlParameter
                        date1 = New SqlParameter("@Creation", SqlDbType.SmallDateTime)
                        date1.Value = TextBox8.Text
     
                        cmd = ccasa.CreateCommand()
                        cmd.CommandText =("insert into ARTICLECASA(AR_Ref,AR_Design,FA_CodeFamille,AR_UniteVen,AR_SuitStok,AR_HorStat,FORNISSEUR,Creation) values( {0},{1},{2},{3},{4},{5},{6},{7})" ;(ref.ParameterName ,design.ParameterName ,codefam.ParameterName,uniteven.ParameterName,stok.ParameterName,horstat.ParameterName ,frs.ParameterName,date1.ParameterName))
                        cmd.ExecuteNonQuery()

  4. #4
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Bonjour,

    Et quel est le problème? (code erreur?)

    P.S. : Pensez à mettre les balises CODE svp

    [EDIT]
    Veuillez revoir l'utilisation des requêtes paramétrée, ce n'est pas du tout comme ça qu'on doit les utiliser...
    [/EDIT]

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 36
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par Sankasssss Voir le message
    Bonjour,

    Et quel est le problème? (code erreur?)

    P.S. : Pensez à mettre les balises CODE svp

    [EDIT]
    Veuillez revoir l'utilisation des requêtes paramétrée, ce n'est pas du tout comme ça qu'on doit les utiliser...
    [/EDIT]
    c ça ce que j'ai trouvé sur internet si vous pouvez me donné un tutoriel étape par étape contient comment les utiliser
    merci d'avance

  6. #6
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    1/ Quel est le SGBD ?

    2/ Il faut faire cmd.Parameters.Add() de chacun des paramètres

    3/ La requête doit être de la forme suivante :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    insert into matable (champ1, champ2) values (@pchamp1, @pchamp2)
    => Pour des paramètres pchamp1 et pchamp2 si tu utilises SQL Server

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    insert into matable (champ1, champ2) values (:pchamp1, :pchamp2)
    => Pour des paramètres pchamp1 et pchamp2 si tu utilises Oracle

    Et si c'est un autre SGBD, il faut adapter.
    On ne jouit bien que de ce qu’on partage.

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 36
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    1/ Quel est le SGBD ?

    2/ Il faut faire cmd.Parameters.Add() de chacun des paramètres

    3/ La requête doit être de la forme suivante :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    insert into matable (champ1, champ2) values (@pchamp1, @pchamp2)
    => Pour des paramètres pchamp1 et pchamp2 si tu utilises SQL Server

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    insert into matable (champ1, champ2) values (:pchamp1, :pchamp2)
    => Pour des paramètres pchamp1 et pchamp2 si tu utilises Oracle

    Et si c'est un autre SGBD, il faut adapter.
    j'utilise sql server
    1-donc a la place de @ je met :
    2-cmd.Parameters.Add() c'est avant la requet ou apres la requet ?????
    merci

  8. #8
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Merci de jeter un coup d'oeil au lien qui vous a été donné plus haut.
    Tout y est décris précisément et simplement.

    Pour SQL Server, il faut utiliser le "@".

  9. #9
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Si on utilise SQL SERVER, je trouve personnellement que le mieux est encore d'utiliser les procédures stockées.

    C'est tellement plus propre de ne pas avoir de code sql dans le code .net.

    Mais bon, cela n'est que mon avis...
    Kropernic

  10. #10
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 36
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par calagan99 Voir le message
    Merci de jeter un coup d'oeil au lien qui vous a été donné plus haut.
    Tout y est décris précisément et simplement.

    Pour SQL Server, il faut utiliser le "@".
    je suivais tous les étapes du lien ms toujours me donne une erreur voila ce que j'ai fais:
    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
    With cmd.Parameters
                        .Add(New SqlParameter("@AR_Ref", SqlDbType.VarChar, 19))
                        .Add(New SqlParameter("@AR_Design", SqlDbType.VarChar, 69))
                        .Add(New SqlParameter("@FA_CodeFamille", SqlDbType.VarChar, 11))
                        .Add(New SqlParameter("@AR_UniteVen", SqlDbType.SmallInt, 10))
                        .Add(New SqlParameter("@AR_SuitStok", SqlDbType.SmallInt, 8))
                        .Add(New SqlParameter("@AR_HorStat", SqlDbType.SmallInt, 25))
                        .Add(New SqlParameter("@FORNISSEUR", SqlDbType.VarChar, 15))
                        .Add(New SqlParameter("@Creation", SqlDbType.SmallDateTime, 9))
     
     
                    End With
                    With cmd
                        .Parameters("@AR_Ref").Value = TextBox1.Text
                        .Parameters("@AR_Design").Value = TextBox2.Text
                        .Parameters("@FA_CodeFamille").Value = TextBox3.Text
                        .Parameters("@AR_UniteVen").Value = CInt(TextBox4.Text)
                        .Parameters("@AR_SuitStok").Value = CInt(TextBox5.Text)
                        .Parameters("@AR_HorStat").Value = CInt(TextBox6.Text)
                        .Parameters("@FORNISSEUR").Value = TextBox7.Text
                        .Parameters("@Creation").Value = TextBox8.Text
     
                    End With
     
                    cmd = ccasa.CreateCommand()
                    cmd.CommandText = "insert into ARTICLECASA(AR_Ref,AR_Design,FA_CodeFamille,AR_UniteVen,AR_SuitStok,AR_HorStat,FORNISSEUR,Creation) values(@AR_Ref,@AR_Design,@FA_CodeFamille,@AR_UniteVen,@AR_SuitStok,@AR_HorStat,@FORNISSEUR,@Creation)"
                    cmd.ExecuteNonQuery()
    erreur :
    variable scalaire "@AR_Ref" doit être déclarée.
    merci de m' aider

  11. #11
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Il faut créer la commande avant de remplir les paramètres, aussi non les paramètres n'existeront pas dans la nouvelle commande :
    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
     
                ' On crée un nouvel objet commande
                cmd = ccasa.CreateCommand()
                ' Création des paramètres sur la commande
                With cmd.Parameters
                        .Add(New SqlParameter("@AR_Ref", SqlDbType.VarChar, 19))
                        .Add(New SqlParameter("@AR_Design", SqlDbType.VarChar, 69))
                        .Add(New SqlParameter("@FA_CodeFamille", SqlDbType.VarChar, 11))
                        .Add(New SqlParameter("@AR_UniteVen", SqlDbType.SmallInt, 10))
                        .Add(New SqlParameter("@AR_SuitStok", SqlDbType.SmallInt, 8))
                        .Add(New SqlParameter("@AR_HorStat", SqlDbType.SmallInt, 25))
                        .Add(New SqlParameter("@FORNISSEUR", SqlDbType.VarChar, 15))
                        .Add(New SqlParameter("@Creation", SqlDbType.SmallDateTime, 9))
                    End With
                    ' Remplissage des valeurs de paramètre
                    With cmd
                        .Parameters("@AR_Ref").Value = TextBox1.Text
                        .Parameters("@AR_Design").Value = TextBox2.Text
                        .Parameters("@FA_CodeFamille").Value = TextBox3.Text
                        .Parameters("@AR_UniteVen").Value = CInt(TextBox4.Text)
                        .Parameters("@AR_SuitStok").Value = CInt(TextBox5.Text)
                        .Parameters("@AR_HorStat").Value = CInt(TextBox6.Text)
                        .Parameters("@FORNISSEUR").Value = TextBox7.Text
                        .Parameters("@Creation").Value = TextBox8.Text
     
                    End With
     
                    cmd.CommandText = "insert into ARTICLECASA(AR_Ref,AR_Design,FA_CodeFamille,AR_UniteVen,AR_SuitStok,AR_HorStat,FORNISSEUR,Creation) values(@AR_Ref,@AR_Design,@FA_CodeFamille,@AR_UniteVen,@AR_SuitStok,@AR_HorStat,@FORNISSEUR,@Creation)"
                    cmd.ExecuteNonQuery()

  12. #12
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 36
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par Sankasssss Voir le message
    Il faut créer la commande avant de remplir les paramètres, aussi non les paramètres n'existeront pas dans la nouvelle commande :
    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
     
                ' On crée un nouvel objet commande
                cmd = ccasa.CreateCommand()
                ' Création des paramètres sur la commande
                With cmd.Parameters
                        .Add(New SqlParameter("@AR_Ref", SqlDbType.VarChar, 19))
                        .Add(New SqlParameter("@AR_Design", SqlDbType.VarChar, 69))
                        .Add(New SqlParameter("@FA_CodeFamille", SqlDbType.VarChar, 11))
                        .Add(New SqlParameter("@AR_UniteVen", SqlDbType.SmallInt, 10))
                        .Add(New SqlParameter("@AR_SuitStok", SqlDbType.SmallInt, 8))
                        .Add(New SqlParameter("@AR_HorStat", SqlDbType.SmallInt, 25))
                        .Add(New SqlParameter("@FORNISSEUR", SqlDbType.VarChar, 15))
                        .Add(New SqlParameter("@Creation", SqlDbType.SmallDateTime, 9))
                    End With
                    ' Remplissage des valeurs de paramètre
                    With cmd
                        .Parameters("@AR_Ref").Value = TextBox1.Text
                        .Parameters("@AR_Design").Value = TextBox2.Text
                        .Parameters("@FA_CodeFamille").Value = TextBox3.Text
                        .Parameters("@AR_UniteVen").Value = CInt(TextBox4.Text)
                        .Parameters("@AR_SuitStok").Value = CInt(TextBox5.Text)
                        .Parameters("@AR_HorStat").Value = CInt(TextBox6.Text)
                        .Parameters("@FORNISSEUR").Value = TextBox7.Text
                        .Parameters("@Creation").Value = TextBox8.Text
     
                    End With
     
                    cmd.CommandText = "insert into ARTICLECASA(AR_Ref,AR_Design,FA_CodeFamille,AR_UniteVen,AR_SuitStok,AR_HorStat,FORNISSEUR,Creation) values(@AR_Ref,@AR_Design,@FA_CodeFamille,@AR_UniteVen,@AR_SuitStok,@AR_HorStat,@FORNISSEUR,@Creation)"
                    cmd.ExecuteNonQuery()
    merci beaucoup pour votre aide ça marche bien

  13. #13
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Si je ne m'abuse, il ne faut pas mettre le "@" dans le nom des paramètres lors des Parameter.Add

    Apparemment, là ça marche car ils sont ignorés, mais ils sont inutiles.
    On ne jouit bien que de ce qu’on partage.

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

Discussions similaires

  1. Probleme d'insertion dans une base de donnée
    Par jubourbon dans le forum Windows Forms
    Réponses: 1
    Dernier message: 05/06/2009, 10h35
  2. Parcours d'un fichier et insertion dans une base de données !
    Par condor_01 dans le forum Général Java
    Réponses: 2
    Dernier message: 24/04/2008, 09h24
  3. probleme d import dans une base de données
    Par calimero642 dans le forum SGBD
    Réponses: 12
    Dernier message: 05/07/2006, 14h19
  4. problème d'insertion dans une base de données
    Par belmansour tidjani dans le forum JDBC
    Réponses: 7
    Dernier message: 18/01/2006, 22h13
  5. Probleme d'insertion dans la base de données
    Par PrinceMaster77 dans le forum ASP
    Réponses: 5
    Dernier message: 11/06/2004, 16h21

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