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 :

Question BindingNavigator / DataGridView


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Par défaut Question BindingNavigator / DataGridView
    Bonjour,

    J'ai une question concernant ce composant:

    Je viens de trouver comment faire pour parcourir un DataGridView à l'aide d'un BindingNavigator(parcourir les élements, supprimer, ajouter une ligne).
    Seulement ces modifications ne sont faites que dans le DBGrid, et ne sont pas faites dans ma table SQL Server.


    Quelqu'un aurait une idée concernant la manière dont je peux procéder pour faire ça?

    NB: mon code pour la configuration du BindingNavigator, DataGridView & BindingSource.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                // Charge une table vide dans la source des bindings
                mainBindingSource.DataSource =FilmDAO.GetList();
                // Configure la navigation
                bindingNavigator1.BindingSource = mainBindingSource;
                // Configure la grille de données sur la même source que la source de navigation
                dataGridView1.DataSource = bindingNavigator1.BindingSource;
    GetList() étant une méthode pour créer une liste d'objets :

    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
     
            public static List<Film> GetList()
            {
                List<Film> Films = new List<Film>(); // création d'une liste d'objets
     
     
                DataTable result = DataAccess.executeQuery("SELECT Id_film,Movie,Genre.Genre,Realisateur.Realisateur from Movie INNER JOIN Genre ON Genre.Id_genre = Movie.Id_genre INNER JOIN Realisateur ON Movie.Id_realisateur = Realisateur.Id_realisateur");
     
     
     
                foreach (DataRow dr in result.Rows) // pour chaque ligne on créé un objet.
                {
                    Film f = new Film();
                    f.Id_film = (int)dr["Id_film"];
                    f.Titre = (string)dr["Movie"];
                    f.Genre = dr["Genre"].ToString();
                    f.Realisateur = dr["Realisateur"].ToString();
                    Films.Add(f);
     
                }
     
     
                return Films;
            }
        }
    Merci de votre aide!

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    humm je pense qu'il faut que la DataSource soit un DataSet et tu fais un DataSet.AcceptChanges()

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Par défaut
    Merci pour ta réponse!
    J'ai plus le code sous les yeux là mais je réessaye ça sous peu!
    Bon week end

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Il n'y a pas de magie derrière le code que tu as écrit. Si tu remplis ta liste avec une requête SELECT, il faut te rendre compte que les requêtes UPDATE,DELETE,INSERT nécessaires à la persistence des changements doivent être aussi écrites quelquepart.

    Au final en ce basant sur ton code actuel: quand tu veux sauvegarder, il faut parcourir ta table, créer des requêtes INSERT pour les nouvelles lignes, des UPDATE pour celles modifiées et des DELETE pour celles supprimées.

    Autre solution comme suggéré, crée un DataSet avec les requêtes SELECT,UPDATE,DELETE,INSERT associées à ton table adapter.

    Troisième solution, mettre en place un outil de mapping objet relationnel pour prendre en charge les opérations de communication avec la base (exemple: NHibernate, LINQ to SQL, Entity Framework, Subsonic, etc.)
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Par défaut
    Merci pour ta réponse,
    étant donné que je n'ai pas encore manipulé de DataSet, tu aurais quelque chose à me conseiller pour manipuler ce composant ?
    J'ai trouvé ceci : http://dotnet.developpez.com/articles/ado2/csharp/
    ça correspond?
    Merci

  6. #6
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Citation Envoyé par arngrimur Voir le message
    Merci pour ta réponse,
    étant donné que je n'ai pas encore manipulé de DataSet, tu aurais quelque chose à me conseiller pour manipuler ce composant ?
    J'ai trouvé ceci : http://dotnet.developpez.com/articles/ado2/csharp/
    ça correspond?
    Merci
    Oui ça te donnera une bonne base de départ
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

Discussions similaires

  1. Deux petits soucis BindingNavigator/Datagridview
    Par fxbrg dans le forum Windows Forms
    Réponses: 1
    Dernier message: 29/04/2009, 13h54
  2. Question sur DataGridView
    Par Kenmath dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/02/2008, 12h38
  3. Question sur le DatagridView
    Par psycho_38 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 15/05/2007, 17h12
  4. Questions sur le DataGridView
    Par misterdev007 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/03/2007, 14h02
  5. Réponses: 1
    Dernier message: 28/09/2006, 11h43

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