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

Dotnet Discussion :

Requête sur plusieurs tables


Sujet :

Dotnet

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Algérie

    Informations forums :
    Inscription : Juin 2002
    Messages : 45
    Points : 24
    Points
    24
    Par défaut Requête sur plusieurs tables
    Bonjour ,

    Moi je suis un habitué de Delphi , et je suis entrain de migrer vers ADO.NET avec MS VS c# , il y a un truc que je trouve pas dans les modèle ADO.net , c'est les requêtes SQL , est-ce qu'on est contraint d'utiliser uniquement la classe DataTable ,qui ne permet pas à ma connaissance de faire une jointure sur deux tables. Dans Delphi il y a l'objet Tquery qui permet de faire tout type de jointure sur les tables de la base.

    Exemple : je veux afficher les commandes d'un client , j'ai deux tables , une pour les commandes et une autre pour les clients, je dois faire une jointure sur ces deux tables sur le champ N° client pour afficher le nom du client dans la liste des commandes, le résultat de jointure doit être affiché dans un DataGrid.

    Est-ce que un qqn peut m'orienter comment faire ?

    Amène.

  2. #2
    Membre actif Avatar de gdkenny
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 251
    Points : 248
    Points
    248
    Par défaut
    Salut,

    regarde du côté de la classe Dataset.

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    vous pouvez résoudre ca par une procédure stocké; tu cré tes requêtes en SQL au niveau de SGBD et vous l'ppellez dans votre application;
    ou bien vous pouvez resoudre ca par le data relation de dotNet.
    bon travail.

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Février 2006
    Messages : 562
    Points : 859
    Points
    859
    Par défaut
    "L'équivalent" du TQuery en Delphi est, je pense, l'objet SqlCommand d'ADO.Net.

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    J'espére que vous avez une certaine connaissance sur l'ADO.NEt.
    voilà un petit exemple:

    SqlCommand macommande=new SqlCommand("nomDeVotreProcedureStoké",connactionName);
    macommande.CommandeType=CommandeType.StoredProcedure;

    Bon Travail;

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Algérie

    Informations forums :
    Inscription : Juin 2002
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    Oui je sais c'est quoi les commandes , mais je pense qu'on ne peut pas les attacher à des contrôles de données comme le DataGrid pour travailler en mode déconnecté. Moi ce que je veux faire c'est d'utiliser une jointure dans un Objet comme le dataTable d'ado.net , et ce pour travailler en mode déconnecté ensuite utiliser le Update pour la mise à jour.

    Amène.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Algérie

    Informations forums :
    Inscription : Juin 2002
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    Bonjour ,

    Moi je pense que la solution est au tour du Data-bindings , Ce procédé est tellement puissant , qu'en effectuant des relations entre les tables on aura pas vraiment besoin de faire des requêtes de jointure entre +eurs tables.

    voici un exemple que j'ai testé :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
            public  void GetDataSet(string tableName)
            {
                String sql = "SELECT * FROM " + tableName;
                //ds = new DataSet(tableName);
                using (conn = new OleDbConnection(myCnx))
                {
                    adapter = new OleDbDataAdapter(sql, conn);
                    adapter.Fill(ds, tableName);
                  //  return ds;
                }
     
     
            }
     
            private void LoadData()
            {
                ds = new DataSet();
                GetDataSet("TIERS");
                GetDataSet("PIECES");
                GetDataSet("ITEM");
     
                // Establish the Relationship "RelCustOrd"
                // between Customers ---< Orders
                System.Data.DataRelation relCustOrd;
                System.Data.DataColumn colMaster1;
                System.Data.DataColumn colDetail1;
                colMaster1 = ds.Tables["TIERS"].Columns["ID"];
                colDetail1 = ds.Tables["PIECES"].Columns["ID_TIERS"];
                relCustOrd = new System.Data.DataRelation("RelCustOrd", colMaster1, colDetail1);
                ds.Relations.Add(relCustOrd);
     
                // Establish the Relationship "RelOrdDet"
                // between Orders ---< [Order Details]
                System.Data.DataRelation relOrdDet;
                System.Data.DataColumn colMaster2;
                System.Data.DataColumn colDetail2;
                colMaster2 = ds.Tables["PIECES"].Columns["ID"];
                colDetail2 = ds.Tables["ITEM"].Columns["PIECE_ID"];
                relOrdDet = new System.Data.DataRelation("RelOrdDet", colMaster2, colDetail2);
                ds.Relations.Add(relOrdDet);
     
                dsView = ds.DefaultViewManager;
     
                // Grid Databinding
                grdOrders.DataSource = dsView;
                grdOrders.DataMember = "TIERS.RelCustOrd";
     
                grdOrderDetails.DataSource = dsView;
                grdOrderDetails.DataMember = "TIERS.RelCustOrd.RelOrdDet";
     
                // Combobox Databinding
                cbCust.DataSource = dsView;
                cbCust.DisplayMember = "TIERS.NOM";
                cbCust.ValueMember = "TIERS.ID";
                // Text Columns Databinding
                tboxPrenom.DataBindings.Add("Text", dsView, "TIERS.PRENOM");
            }

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

Discussions similaires

  1. suite au problème de requête sur plusieur table
    Par michelGProuq dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/07/2006, 16h19
  2. [VB6] RecordSet, Oracle, requête sur plusieurs Tables
    Par pier* dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 13/04/2006, 10h19
  3. Requête sur plusieurs tables
    Par sta_schmitt dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/03/2006, 13h54
  4. Requéte sur plusieurs tables
    Par polux23 dans le forum Requêtes
    Réponses: 11
    Dernier message: 23/02/2006, 23h00
  5. Requête sur plusieurs tables
    Par drinkmilk dans le forum Langage SQL
    Réponses: 8
    Dernier message: 11/07/2005, 12h25

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