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

Windows Forms Discussion :

Execution de Requetes SQl paramètrées


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut Execution de Requetes SQl paramètrées
    Bonjour, j'ai posé la question coté SQL Server, mais je crois qu'il sera plus juste de la poser de ce coté

    Voici une Classe que j'utilise pour le requetes SQL ( en parametre: la String SQL , le nom de la table et la connexion. elle me Retourne un dataset: tout fonctionne tres bien

    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
    Public FUNCTION Getdatas(ByRef StringSql AS String, ByRef TableName AS String, ByRef Connexion AS String) AS DataSet
                Dim Ds AS DataSet
                Dim Da AS SqlDataAdapter
                Dim ConnexionData AS SqlConnection
                Dim StrSql AS String = Nothing
                Dim ErrorSource AS String = Nothing
     
                Try
                      ConnexionData = New SqlConnection(Connexion)
                      ConnexionData.Open()
                      Da = New SqlDataAdapter(StringSql, Connexion)
                      Ds = New DataSet
                      Da.Fill(Ds, TableName)
                      ConnexionData.Close()
     
                      RETURN Ds
     
                Catch ex AS Exception
     
                      ErrorSource = Environment.MachineName
                      SendEmail(My.Application.Info.ProductName & "@sender.be", "moi@monEmail.eu", ErrorSource & " - Error Program ", ex.Message & vbCrLf & StringSql)
                      Call AnormalFin(0, "Error on table " & TableName, ex.Message)
     
                      RETURN Nothing
     
                End Try
     
          End FUNCTION
    Je souhaite maintenant pourvoir utiliser des requetes paramètrées afin d'éviter la malveillance de certaines personnes
    J'ai trouvé un tuto sur le sujet, mais je ne vois pas comment l'implémenter dans la requete que je passe en paramètre
    Si quelqu'un a une idée ou un bout de code assez explicatif, je suis preneur

    Merci bien

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public FUNCTION Getdatas(ByRef StringSql AS String, ByRef TableName AS String, ByRef Connexion AS String, paramarray params() as dbparameter) AS DataSet
     
     
      for each p as dbparameter in params
     
      next
     
    ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut
    Mais encore....
    quels sont les paramètres a passés a la fonction et quel est ce qui est a récupérer?

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim rq as string = "SELECT * FROM table WHERE champ1 = @valeurchamp1"
    dim p as new system.Data.sqlclient.sqlparameter("@valeurchamp1",type du champ)
    p.value = montextbox.text
     
    dim ds as dataset = Getdatas(rq,"table",maconnexion,p)
    paramarray permet de dire qu'on va ajouter en 0 et x choses du meme type, en l'occurence des sqlparameter puis il suffit de les donner au moment de l'appel de la fonction
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut
    Si je ne me trompe, alors je défini et j'assigne les valeurs des textbox et autres a p.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    dim p(0) as new system.Data.sqlclient.sqlparameter("@valeurchamp0",type du champ)
    dim p(1) as new system.Data.sqlclient.sqlparameter("@valeurchamp1",type du champ)
     
    Rq="Update MaTable SET Champs0=@valeurchamp0,Champs1=@valeurchamp1"
     
    p(0).value = montextbox0.text
    p(1).value = montextbox1.text
     
    'Appel de la fonction
    GetData.Getdatas(rq,"table",maconnexion,p)

    Le but étant de passer les valeurs saisies par le Array et de les récupérer par la requete, dans la fonction


    Si je me fais bien comprendre dans mon français

    Je laisse dormir cela jusqu'a demain et j'essaye

    encore merci à sperot51 et les autres

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    pas tout compris

    mais tu peux aussi faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    dim pMachin as parameter ...
    dim pTruc as parameter...
     
    pMachin.value = 
    pTruc.value = 
     
    GetData.Getdatas(rq,"table",maconnexion,pMachin,pTruc)
    paramarray permet de passer soit un tableau du type, soit plein d'instances du types (parfois plus lisible de faire plusieurs instances parce que p(0) c'est moins explicite que paramDateDebut par exemple
    dans la fonction ca ressort un tableau dans les 2 cas par contre
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. [VB6]exécution des requétes sql
    Par nabil dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 02/06/2006, 07h24
  2. Comment executer une requete sql delete dans une jsp ?
    Par DarkWark dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 24/05/2006, 16h59
  3. Réponses: 3
    Dernier message: 15/05/2006, 17h29
  4. [VBA-E] Temps d'execution de requetes SQL tres long
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/03/2006, 10h25
  5. Pb d'execution de requete sql
    Par Crazynoss dans le forum ASP
    Réponses: 2
    Dernier message: 11/05/2005, 10h19

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