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

C# Discussion :

Exécuter une requete par code et l'afficher [Débutant]


Sujet :

C#

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Points : 77
    Points
    77
    Par défaut Exécuter une requete par code et l'afficher
    salam

    je veut exécuté une requete directement dans le code par l’intermédiaire d'un tableadapter et affiché son résultat dans un datagridview pour cela j'ai créer ce un tableadapter (avec l'aide de concepteur VS) ensuit dans l’événement clique d'un bouton j'ai placer ça :

    Code :
    Sélectionner tout - Visualiser dans une fenêtre à part

    1
    2



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monTableAdapter.Adapter.SelectCommand.CommandText =  "ma requête";
    ensuite j'ai relier mon tableadapter avec un datagridview mais quant je clique sur le bouton le résultat de la requete ne s'affiche pas sur mon datagridview.
    Delphi XE8 Architect - Win 10

  2. #2
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    ATTENTION : si tu as ton tableadpater avec le concepteur de VS, il semble qui'il est inutile et même dangereux de faire
    monTableAdapter.Adapter.SelectCommand.CommandText = "ma requête";
    Car d'après ce post, “The tableadapter selectcommand property is private and not exposed!”.

    Mais si tu as l'intention de créer dynamiquement des requêtes en fonction des saisies utilisateurs dans un formulaire, il y a un workaround ici.

    Donc, si ton datagridview a comme source données une datatable, tu peux faire simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.monTableAdapter.Fill(this.tonDataSet.TaTable);
    et le datagridview se remplirait automatiquement.

    Sinon, sans passer par le concepteur de VS, tu peux avoir un truc du genre:
    Code c# : 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
    public void PopulateMyDataGridview()
    {
    	SqlConnection connex = new SqlConnection(TaChaineDeConnexion);
    	SqlDataAdapter myAdapter = new SqlDataAdapter();
    	DataSet myDataSet = new DataSet();
     
    	myAdapter.SelectCommand = new SqlCommand();
    	myAdapter.SelectCommand.Connection = connex;
     
    	myAdapter.SelectCommand.CommandText = "SELECT Title, LastName, FirstName, PhoneNumber FROM Customers";
    	myAdapter.SelectCommand.CommandType = CommandType.Text;
     
    	connex.Open();
     
    	myAdapter.Fill(myDataSet, "MaTable");
     
    	connex.Close();
     
    	MonDataGridView.DataSource = myDataSet;
    	MonDataGridView.DataMember = "MaTable";
     
    }
    N'oubliez pas le tag et

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Points : 77
    Points
    77
    Par défaut
    pour commencer merci pour votre réponse .

    je viens d’essayé d'adapté le code que tu ma fourni pour créer un tableadapter sans passez par le VS mais les mot clé ne sont pas reconnu puisqu'ils son souligner avec le rouge SqlConnection et SqlDataAdapter par contre le mot clé DataSet et reconnu .
    ps : j'utilise csharp comme langage avec visuel studio 2012.

    autre information : j'ai essayer de créer une requete paramétré mais j'ai pas pu placer les paramaitre ... normalement c'est comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TableAdapter.Fill(DataSet.datatable,
       parmetre1,paramétre2)
    moi je n'est que ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableAdapter.Fill(DataSet.datatable)
    le code ne reconnais pas mes paramètre.

    merci d'avance.
    Delphi XE8 Architect - Win 10

  4. #4
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Citation Envoyé par adelcrb Voir le message
    je viens d’essayé d'adapté le code que tu ma fourni pour créer un tableadapter sans passez par le VS mais les mot clé ne sont pas reconnu puisqu'ils son souligner avec le rouge SqlConnection et SqlDataAdapter par contre le mot clé DataSet et reconnu .
    Faudrait ajouter les références appropriées
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    using System.Data;
    using System.Data.SqlClient;

    Citation Envoyé par adelcrb Voir le message
    autre information : j'ai essayer de créer une requete paramétré mais j'ai pas pu placer les paramaitre ... normalement c'est comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TableAdapter.Fill(DataSet.datatable,
       parmetre1,paramétre2)
    moi je n'est que ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableAdapter.Fill(DataSet.datatable)
    le code ne reconnais pas mes paramètre.
    Effectivement c'est
    TableAdapter.Fill(dataset.DataTable, param1, param2);
    . As-tu un message d'erreur? Passes-tu les bons paramètres avec les bons types?
    N'oubliez pas le tag et

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Points : 77
    Points
    77
    Par défaut
    merci pour la réponse

    - effectivement il manquai les références approprié ... maintenant j'arrive pas a créer ma connectionstring j'ai essyer ça (après une recherche sur la toile ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlConnection connex = new SqlConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\projet \gestion des projet\gp.mdb");
    base access 2003

    la compilation ce fait normalement mais quant je clique sur le bouton j'ai le droit a cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mot clé non pris en charge : 'provider'.
    - pour la requete paramétré j'ai tous vérifier mais les paramétrés ne sont pas reconnu du coup je me base sur la première solution je veut tous créer moi même sans compté sur VS.

    merci pour votre temps.
    Delphi XE8 Architect - Win 10

  6. #6
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Citation Envoyé par adelcrb Voir le message
    j'arrive pas a créer ma connectionstring j'ai essyer ça (après une recherche sur la toile ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlConnection connex = new SqlConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\projet \gestion des projet\gp.mdb");
    base access 2003

    la compilation ce fait normalement mais quant je clique sur le bouton j'ai le droit a cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mot clé non pris en charge : 'provider'.
    Fait attention aux espaces dans le chemin du Data Source. Es-tu sûr qu'il y bien espace entre F:\projet et \gestion?
    N'oubliez pas le tag et

  7. #7
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Citation Envoyé par adelcrb Voir le message
    - pour la requete paramétré j'ai tous vérifier mais les paramétrés ne sont pas reconnu du coup je me base sur la première solution je veut tous créer moi même sans compté sur VS.
    Normalement dans le concepteur de vs, tu devrais avoir un truc semblable à l'image ci-dessous:

    Moi j'ai utilisé une procédure stockée. Mais le principe est le même pour les requêtes texte. Tu remarqueras en rouge mon paramètre. Il est de type int.
    Dans mon code, j'y accède de la manière suivante:

    Remarque que mon paramètre s'affiche normalement avec son type.

    Essayes donc de bien revoir la définition de tes paramètres au niveau du concepteur.
    N'oubliez pas le tag et

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Points : 77
    Points
    77
    Par défaut
    pour commencer merci beaucoup pour ton aide . je suis impressionné comme un petit enfant

    - pour la chaine de connexion je sais pas ce qui clochai mais bon j'ai chercher un peut et j'ai utilisé cette méthode :

    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
    OleDbConnection connex = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\\gestion des projet\gp.mdb");
                OleDbDataAdapter myAdapter = new OleDbDataAdapter();
                DataSet myDataSet = new DataSet();
     
                myAdapter.SelectCommand = new OleDbCommand();
                myAdapter.SelectCommand.Connection = connex;
     
                myAdapter.SelectCommand.CommandText = "reqete";
                myAdapter.SelectCommand.CommandType = CommandType.Text;
     
                connex.Open();
                myAdapter.Fill(myDataSet, "matable");
     
     
                connex.Close();
     
                dataGridView3.DataSource = myDataSet;
                dataGridView3.DataMember = "matable";

    j'ai bien réusie a afficher les enregistrement de ma requete sur mon datagridview maintenant je veut avoir (si c'est possible ) une explication de chaque ligne pour comprendre ce qui ce passe .

    pour la requete paramétré je sais pas ce qui ce passe chez moi mais j’arrive pas indiqué les paramètres sinon dans le concepteur ça marche bien je précède des ( : ) avant chaque paramètre et quant j’exécute j'ai belle et bien les enregistrement puisqu'il me demande de saisir un paramètre mais une fois dans le code comme tu l'indique sur la photo ... mes paramètres ne sont pas reconnu , peut être que c'est parce que c'est une requete composé de plusieurs tables.

    merci.

    merci.
    Delphi XE8 Architect - Win 10

  9. #9
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Citation Envoyé par adelcrb Voir le message
    j'ai bien réusie a afficher les enregistrement de ma requete sur mon datagridview maintenant je veut avoir (si c'est possible ) une explication de chaque ligne pour comprendre ce qui ce passe .
    Pour bien comprendre, je te conseille vivement de lire la section décrivant les DataSet et DataAdapter dans l'excellent cours de plassere.

    Citation Envoyé par adelcrb Voir le message
    une fois dans le code comme tu l'indique sur la photo ... mes paramètres ne sont pas reconnu , peut être que c'est parce que c'est une requete composé de plusieurs tables.
    Non, pas du tout. Tu peux ajouter autant de tables que tu veux. ça n'a rien à avoir avec le fait que tes paramètres ne sont pas reconnus dans le code. Le problème se trouve forcément ailleurs.

    Dans ton concepteur, as-tu le paramètre affiché au niveau de Fill, GetData (...) comme sur mon image? Peux-tu nous montrer la requête du concepteur?
    N'oubliez pas le tag et

  10. #10
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Points : 77
    Points
    77
    Par défaut
    générateur de requete :


    concepteur : pas de paramètre
    Delphi XE8 Architect - Win 10

  11. #11
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    La façon de spécifier les paramètres varie en fonction des providers. Dans le cas de OLEDB, je crois que c'est plutôt le point d'interrogation (?) qu'il faut utiliser pas les deux points(. Essayes donc avec ? . Ton paramètre devrait donc bien apparaît au niveau de Fill, GetData (...).
    N'oubliez pas le tag et

  12. #12
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut Spécification des paramètres selon les différents providers
    Voici la page MSDN sur l'utilisation des paramètres avec le DataAdapter. Bon dev .
    N'oubliez pas le tag et

  13. #13
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Points : 77
    Points
    77
    Par défaut
    ça marche

    j'ai une dernière question a propos de dataadapter que j'ai créer moi même (mydataadapter) j'ai remarqué qu'a chaque fois que j’appuie sur le bouton les enregistrement s’accumule j'aimerai bien savoir comment le vider ou le réinitialisé a chaque fois que je d'éclanche l’éventent .
    merci d'avance.
    Delphi XE8 Architect - Win 10

  14. #14
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Essayes avec juste avant de faire
    myAdapter.Fill(myDataSet, "matable");
    N'oubliez pas le tag et

  15. #15
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Points : 77
    Points
    77
    Par défaut
    ahhhh oui il faut vider le dataset et pas le dataadapter merci tout est nickel (pour le moment )
    Delphi XE8 Architect - Win 10

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

Discussions similaires

  1. [Débutant] exécuter une requete par code
    Par adelcrb dans le forum C#
    Réponses: 2
    Dernier message: 09/09/2013, 17h03
  2. [MySQL] afficher une requete par mois et par année
    Par Whinespirit dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 20/06/2010, 10h55
  3. Par quel moyen exécuter une liste de code SQL
    Par Bourezak dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 23/01/2008, 15h27
  4. Lancer une requête par du code
    Par Kyrha dans le forum Access
    Réponses: 8
    Dernier message: 30/05/2006, 09h10
  5. [Forms 6i] Exécuter une lov par le code
    Par macben dans le forum Oracle
    Réponses: 2
    Dernier message: 02/02/2006, 17h04

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