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

Accès aux données Discussion :

Requête SQL avec paramètre sous visual studio 2008


Sujet :

Accès aux données

  1. #1
    Membre du Club
    Homme Profil pro
    stagiaire IT
    Inscrit en
    Août 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : stagiaire IT
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 78
    Points : 50
    Points
    50
    Par défaut Requête SQL avec paramètre sous visual studio 2008
    Bonjour à tous!

    J'ai une grosse épine dans le pied!
    en fait, dans mon code une combobox correspondant aux lignes de ma tables, et une autre qui permet de déterminer la colonne à selectionner afin de choisir la valeur d'une cellule.
    J'utilise une BDD sous Access

    Mon code est le suivant (classic):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //Connection à la table des Codes méthodologique (tableau des "product")
                DataSet oDS;
                // ouvrir la base de données
                DbProviderFactory dbpf = DbProviderFactories.GetFactory("System.Data.OleDb");
                DbConnection oConn = dbpf.CreateConnection();
                oConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=BDD.mdb";
                DbDataAdapter oDA = dbpf.CreateDataAdapter();
                oDA.SelectCommand = oConn.CreateCommand();
                oDA.SelectCommand.CommandText = "SELECT  * From Product";               
                oDS = new DataSet();
                oDA.Fill(oDS);

    J'aimerais pouvoir éviter de faire une sorte de gros gros code moteur de recherche dans le dataset, donc ma question est la suivante : Est-il possible de le faire en une seule requête qui serait paramétrée??

    Merci d'avance!!

  2. #2
    Membre du Club
    Homme Profil pro
    stagiaire IT
    Inscrit en
    Août 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : stagiaire IT
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 78
    Points : 50
    Points
    50
    Par défaut
    J'ai pu mettre ce code-ci,

    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
     
     
                //Connection à la table des Codes méthodologique (tableau des "product")
                DataSet oDS;
                // ouvrir la base de données
                DbProviderFactory dbpf = DbProviderFactories.GetFactory("System.Data.OleDb");
                DbConnection oConn = dbpf.CreateConnection();
                oConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=BDD.mdb";
                DbDataAdapter oDA = dbpf.CreateDataAdapter();
                oDA.SelectCommand = oConn.CreateCommand();
                oDA.SelectCommand.CommandText = "SELECT 'Datas.Produit' From Product Where ProductID = 'Datas.Portfolio' ";               
                oDS = new DataSet();
                oDA.Fill(oDS);
     
                MonRésultat = (double)oDS.Tables[0].Rows[0][0];
    Est-ce fonctionne là votre avis? ou est-ce qu'on peut encore optimiser?

    merci!

  3. #3
    Membre du Club
    Homme Profil pro
    stagiaire IT
    Inscrit en
    Août 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : stagiaire IT
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 78
    Points : 50
    Points
    50
    Par défaut
    voilà! j'ai trouvé la solution à mon problème de syntaxe!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //Connection à la table des Codes méthodologique (tableau des "product")
                DataSet oDS;
                // ouvrir la base de données
                DbProviderFactory dbpf = DbProviderFactories.GetFactory("System.Data.OleDb");
                DbConnection oConn = dbpf.CreateConnection();
                oConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=BDD.mdb";
                DbDataAdapter oDA = dbpf.CreateDataAdapter();
                oDA.SelectCommand = oConn.CreateCommand();
                oDA.SelectCommand.CommandText = "SELECT * FROM Product WHERE ProductID = '"+Datas.Produit+"'";      //ici est le parametre!!          
                oDS = new DataSet();  /ne pas oublier les ' ' et + + pour concaténer 
                oDA.Fill(oDS);
    Merci quand même!

  4. #4
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Et bien c'est raté!

    Les paramètres dans une requête ne se passent pas en concaténant la valeur dans le texte de celle-ci!

    Utilisez les SqlParameter afin de ne pas passer aux infos car votre site a subit une attaque par injection SQL

    http://msdn.microsoft.com/fr-fr/libr...(v=vs.80).aspx
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/03/2012, 15h36
  2. RS232 avec Windows Form sous Visual Studio 2008
    Par Jerepain dans le forum Visual C++
    Réponses: 8
    Dernier message: 14/05/2009, 18h02
  3. Réponses: 0
    Dernier message: 13/02/2009, 01h44
  4. Réponses: 10
    Dernier message: 19/03/2007, 15h37
  5. requête SQL avec paramètre en vb avec base de donnée SQL srv
    Par dialydany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 01/02/2005, 10h33

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