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 :

[debutant]Requêtes Avec Variable


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 115
    Par défaut [debutant]Requêtes Avec Variable
    Bonjour,
    Je dispose d'un datagrindView, avec une table dedans.
    Ainsi que 3 textbox et 1 bouton
    Je souhaterai créé une requette qui aille piocher dans les variable des textbox
    par exemple
    INSERT INTO Ingredient(Num, Nom, Qte)
    VALUE ([Variable Textbox1], [Variable Textbox2], [Variable Textbox3])

  2. #2
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    alors quand tu es débutant comme tu dis, la première chose à faire c'est de faire un tour dans la FAQ, le tutos du site et MSDN...,

    sinon

    tu dois faire ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Insert into table (champ1,champ2) values( @Val1,@Val2)
    avant d'exécuter ta requete, tu dois créer tes prametres et assigner les valeurs à ceux-ci

    Cordialement

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 115
    Par défaut
    Merci, j'ai deja lu les FAQ ... rien ne correspondait à mes attentes.

    Je suis arrivé à un code (qui ne fonctionne pas) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Dim NumIng As Integer
            Dim NomIng As String
            Dim Qt As Integer
            Essai1.Text = NumIng
            Essai2.Text = NomIng
            Essai3.Text = Qt
            Me.IngredientTableAdapter.Insert(NumIng.Tostring, Test.ToString, Qt.ToString)
    Suis je sur la bonne voie ?

  4. #4
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 115
    Par défaut
    Ha exact, merci

    j'avais lu la partie "visual basic" et non dot.net

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 115
    Par défaut
    Par contre, une question que je n'arrive pas a resoudre :

    Quelles classes utiliser pour me connecter à ma base de donnée ?

    alors que ma table est sous Access ?
    c'est SQL serveur ?

  7. #7
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    OleDbConnection

    A nouveau http://dotnet.developpez.com et http://dotnet.developpez.com/cours/ tu trouveras bien des choses qui t'intéressent

  8. #8
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 83
    Par défaut
    Sinon tu peux faire aussi comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "INSERT INTO Ingredient(Num, Nom, Qte) VALUE (" & "'Textbox1.Text'" & ", " & "'Textbox2.text'" & ", " & "'Textbox3.text'" & ")"
    Voila,

    J'espere que ca te sera utile

  9. #9
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    Citation Envoyé par nico_pouchet Voir le message
    Sinon tu peux faire aussi comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "INSERT INTO Ingredient(Num, Nom, Qte) VALUE (" & "'Textbox1.Text'" & ", " & "'Textbox2.text'" & ", " & "'Textbox3.text'" & ")"
    Voila,

    J'espere que ca te sera utile

    Euh... C'est pas une bonne idée ca

    Il est aisé de prendre le contrôle de la base de données avec ce genre de choses. SQL Injection, SQL Truncating, ... sont des techniques qui se basent sur le fait que des gens utilisent des constructions litérales pour la génération de requête.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 115
    Par défaut
    Merci, je vais essailler ça.

    Meme si c'est pas " securisé" et qu'une requette "parametrée" le serai d'avantage, je cherche pour le moment à me faire un petit programme pour apprendre, donc si cela marche, c'est deja bien

  11. #11
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    Citation Envoyé par theoffss Voir le message
    Merci, je vais essailler ça.

    Meme si c'est pas " securisé" et qu'une requette "parametrée" le serai d'avantage, je cherche pour le moment à me faire un petit programme pour apprendre, donc si cela marche, c'est deja bien
    C'est quasi plus simple de faire directement des requêtes paramètrées Tu risques moins de faire des erreur et de t'arracher les cheveux

  12. #12
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 83
    Par défaut
    Citation Envoyé par Ditch Voir le message
    Euh... C'est pas une bonne idée ca

    Il est aisé de prendre le contrôle de la base de données avec ce genre de choses. SQL Injection, SQL Truncating, ... sont des techniques qui se basent sur le fait que des gens utilisent des constructions litérales pour la génération de requête.
    J'avou ca pose des problemes de securite si on ne met pas certaines restrictions sur les textbox, cependant une requete parametree.... si le parametre provient d'une textbox (car par moment on est bien oblige, en fonction de ses besoins, de laisser l'utilisateur saisir un bout de texte, exemple simple une requete de recherche ....) cela ne pose pas le meme probleme de securite ???

    Car dans ce cas, le message ecrit dans la textbox est passe au parametre qui sert a construire ta requete ...

    J'aimerai bien savoir (simple curiosite et pour enrichir ma culture personnel) si dans ce cas precis il y a une reelle difference sur la securite ..

    merci

  13. #13
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    Citation Envoyé par nico_pouchet Voir le message
    J'avou ca pose des problemes de securite si on ne met pas certaines restrictions sur les textbox, cependant une requete parametree.... si le parametre provient d'une textbox (car par moment on est bien oblige, en fonction de ses besoins, de laisser l'utilisateur saisir un bout de texte, exemple simple une requete de recherche ....) cela ne pose pas le meme probleme de securite ???

    Car dans ce cas, le message ecrit dans la textbox est passe au parametre qui sert a construire ta requete ...

    J'aimerai bien savoir (simple curiosite et pour enrichir ma culture personnel) si dans ce cas precis il y a une reelle difference sur la securite ..

    merci
    Non ce n'est pas pareil. Ton paramètre a un type.

    Si tu fais "where nom = '" + tbNom.Text + "'", il est aisé de mettre "'; drop table nomtable; --" dans la textbox et cela donnera comme requête:
    "where nom = ''; drop table nomtable; --'".

    Par contre si tu utilises les paramètres, cela donnera
    where nom = '''; drop table nomtable; --''', ce qui n'est pas pareil et n'a surtout pas les mêmes résultats

  14. #14
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 83
    Par défaut
    Citation Envoyé par Ditch Voir le message
    Non ce n'est pas pareil. Ton paramètre a un type.

    Si tu fais "where nom = '" + tbNom.Text + "'", il est aisé de mettre "'; drop table nomtable; --" dans la textbox et cela donnera comme requête:
    "where nom = ''; drop table nomtable; --'".

    Par contre si tu utilises les paramètres, cela donnera
    where nom = '''; drop table nomtable; --''', ce qui n'est pas pareil et n'a surtout pas les mêmes résultats
    Effectivement, je vois bien la difference... Mais comme c'est ecrit dans le tuto dont tu as poste le lien, le management des droits sur les bases restent quand meme le meilleur moyen d'eviter ce genre de soucis
    Merci

  15. #15
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    Citation Envoyé par nico_pouchet Voir le message
    Effectivement, je vois bien la difference... Mais comme c'est ecrit dans le tuto dont tu as poste le lien, le management des droits sur les bases restent quand meme le meilleur moyen d'eviter ce genre de soucis
    Merci
    Crois pas tout ce qui est écrit, surtout si c'est Ronald qui l'a écrit

    Plus sérieusement, le mieux c'est carrément la combinaison des deux. Imaginons qu'on empêche le "DROP TABLE" pour un user, rien n'empeche d'utiliser la même technique pour faire un SELECT sur une table pour récupérer les infos dont on a habituellement pas le droit d'avoir

Discussions similaires

  1. Requète avec variable
    Par Alex_42 dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/04/2008, 15h03
  2. Créer une requête avec variable d'une inputbox
    Par Elias Farks dans le forum VBA Access
    Réponses: 4
    Dernier message: 14/02/2008, 17h08
  3. [SQL & VBA] Requête avec Variable
    Par Altrensa dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/07/2007, 14h31
  4. Réponses: 10
    Dernier message: 11/07/2007, 12h06
  5. Requête avec variable incrémentée sur changement de clé.
    Par souellet dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/09/2005, 22h47

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