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 :

1 DataGrid pour plusieurs Datasources


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Par défaut 1 DataGrid pour plusieurs Datasources
    Bonjour,

    après plusieurs années de programmation PowerBuilder je suis actuellement en train de me former à dotnet et je rencontre énormément d'obstacles au niveau de leur présentation de mes données issues d'une DB.

    mon problème actuel concerne la DataGridView et le fait que la présentation (donc les colonnes affichées, leur largeur, leur formatage etc.) se fait au niveau du DataGridView alors que la source de données est définie dans le datasource. (ce qui ne me parait vraiment pas très logique ni pratique... ?)

    Question : Dans ces conditions comment réaliser par exemple une fenêtre contenant
    a) une dropdownlistbox avec un choix de listes (choix d'une datasource) à afficher
    b) une datagridview devant afficher la liste choisie dans la dropdownlistbox

    En powerbuilder ça ne pose pas de problème puisque la partie Présentation des données se fait au niveau de la datasource, ce qui me semble logique vu qu'une présentation des colonnes de la table "articles" ne pourra logiquement pas s'appliquer à la table "personnes"
    Donc en Powerbuilder je me contenterai de changer la datasource de ma datawindow (équivalent datagrid) et hop! c'est fini.

    alors je sais que je peux modifier la présentation de mes colonnes par programation mais ça me parait vraiment ... nul comme solution, en effet je cherche à dimensionner mes colonnes, leur hauteur, leur largeur, etc. et il me semble que c'est clairement le genre de tâche qui devrait pouvoir se faire visuellement sinon je vais devoir coder les positions de mes objets, lancer l'appli, voir si la position est bone, sinon retourner dans le code, changer mes valeurs, relancer l'appli etc... ce n'est pas tenable il me semble.


    voilà, j'espère avoir bien expliqué mon problème et j'aimerai avoir vos réactions, manières de faire.

    merci.

  2. #2
    Membre éclairé Avatar de psycho_38
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 55
    Par défaut
    Bonjour Rincevent76,

    Tu peux facilement changer de datasource pdt l'execution de ton app.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dataGridView1.AutoGenerateColumns = true;
    bindingSource1.DataSource = GetData("Select * From Products");
    dataGridView1.DataSource = bindingSource1;
    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
    private static DataTable GetData(string sqlCommand)
    {
        string connectionString = "taconnectionstring";
     
        SqlConnection northwindConnection = new SqlConnection(connectionString);
     
        SqlCommand command = new SqlCommand(sqlCommand, northwindConnection);
        SqlDataAdapter adapter = new SqlDataAdapter();
        adapter.SelectCommand = command;
     
        DataTable table = new DataTable();
        table.Locale = System.Globalization.CultureInfo.InvariantCulture;
        adapter.Fill(table);
     
        return table;
    }
    Ce code marche pour le fournisseur SQLserver (using System.Data.SqlClient

    Il te suffit juste de remplacer la requete SQL ("Select * From Products") comme tu le souhaite sur l evenement SelectIndexChange de la combobox par exemple ous ur l'evenement clik d'un bouton...

    Voila j'espere que ceci te sera utile

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Par défaut
    Bonjour et merci d'essayer de m'aider.

    Par contre as tu lu tout mon message ? parceque mon problème n'est pas dans le changement du datasource, ça je sais le faire , mais dans la présentation des colonnes affichées dans la datagrid après le changement de datasource.

    L'autogénération des colonnes ne me satisfait pas ( colonnes trop petites, pas d'autogénération de dropdownlistbox pour les champs liés d'une autre table (FK) etc etc) et faire cette présentation avec du code ne me parait pas très pratique non plus.

  4. #4
    Membre éclairé Avatar de psycho_38
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 55
    Par défaut
    Regarde les propriétés AutosizecolumnsMode et AutosizeRowsMode (en fin si ce n'est pas déja fait)

    Et il y en a bien d' autre, si aucune ne te convient il ne te reste plus qu'a coder car je pense que c'est le seul moyen qu'il te reste si tu es extrement pointu sur la présentation de ta gridView.
    Sinon en ce qui concerne l'autogénération de la combo aucune idée

    Bon courage

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Par défaut
    bon ben y me reste plus qu'a coder si je comprends bien

    merci pour ton aide.

Discussions similaires

  1. trigger delete pour plusieurs lignes
    Par Shabata dans le forum Langage SQL
    Réponses: 6
    Dernier message: 30/09/2009, 01h00
  2. Réponses: 1
    Dernier message: 21/05/2007, 11h48
  3. datagrid avec plusieurs tables pour source
    Par sundjata dans le forum Accès aux données
    Réponses: 4
    Dernier message: 20/11/2006, 09h27
  4. Economie de mémoire pour plusieur images avec la même source
    Par neness dans le forum Composants VCL
    Réponses: 5
    Dernier message: 18/01/2004, 10h56
  5. Réponses: 4
    Dernier message: 06/11/2003, 10h37

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