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 :

Update base de données par DataGridView sans DataAdapter


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de seb.49
    Profil pro
    ljgdfgdf
    Inscrit en
    Octobre 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : ljgdfgdf

    Informations forums :
    Inscription : Octobre 2002
    Messages : 291
    Par défaut Update base de données par DataGridView sans DataAdapter
    Bonjour,

    Plus à l'aise en ASP.NET qu'en winform, je bute sur un point qui doit être tout simple.

    J'utilise un DataGridView que j'alimente avec un dataset, jusque là pas de problème. Je veux bien évidemment que ce que je modifie dans le datagridview se répercute dans la base. A priori il est conseillé d'utilisé un DataAdapter.

    En ASP.NET, je développe en couche et avec l'Application Block DataAccess de Microsoft, et je ne m'occupe jamais des DataAdpater. je voudrais donc pouvoir réutiliser mon DAL pour mettre à jour ma base depuis mon datagridview sans passer par un DataAdapter.

    Je cherche les évènements du DataGridView à utiliser (RowLeave, RowEnter, UserDeletingRow, UserAddedRow, ...) voir mieux, des exemples car la je galère à fond

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    On pourrait pratiquer ainsi :
    - créer un DataTable (sans data source),
    - L'alimenter avec la base de donnée,
    - Lier le datagridview à la table,
    - Valider les changements du datagridview par des AcceptChanges,
    - Traiter les événements de la DataTable.

    La gestion des événements du DatagridView en édition est une source constante de problèmes. J'ai renoncé à utiliser ce composant pour faire de l'édition avec des interactions applicatives un peu élaborées.

  3. #3
    Invité de passage
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1
    Par défaut
    salut,

    pour mettre à jour une base de données via un datagridview, tu utilises un DbDataAdapter ou un SqlDataAdapter ?
    parce que SqlDataAdapter possède deux evenements que DbDataAdapter ne possède pas :
    - rowupdating
    - rowupdated

    donc, si tu utilises DbDataAdapter, il te faut faire un casting en SqlDataAdapter puis générer l'evenement rowupdating (par exemple, en cliquant sur un bouton)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //casting
    SqlDataAdapter MySqlAdapter=(SqlDataAdapter)MyDbAdapter;
    // generation de l'evenement
    MySqlAdapter.RowUpdating+=new SqlRowUpdatingEventHandler(MySqlAdapter_RowUpdating);
     
    //evenement dans lequel tu traites ta base de données
    void MySqlAdapter_RowUpdating(object sender, SqlRowUpdatingEventArgs e)
    {
        ... // traitement
    }
    N'oublies pas que cet evenement rowupdating ne se declenchera que si tu fais un update de ton SqlDataAdapter.
    par exemple, sur clic d'un bouton "valider", tu fais simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MySqlAdapter.Update(MyDataset,"nom_de_table");
    //nom_de_table est le nom de la table du dataset
    //qui sert à la mise à jour dans la DB
    J'espere n'avoir rien oublié, et surtout de ne pas m'être trompé lol
    j'ai testé avec SQL server 2005, et ca marche.
    j'espère que ca t'aidera.

Discussions similaires

  1. [ODBC] Site avec base de données : par ou commencer ?
    Par Liane dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/03/2006, 14h56
  2. lier deux base de données par un même table
    Par id dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/02/2006, 14h28
  3. Base de donnée en Delphi sans leBDE
    Par ethan_decoster dans le forum Bases de données
    Réponses: 3
    Dernier message: 31/01/2006, 20h35
  4. [DEBUTANT] Base de données par défaut
    Par karamazov994 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/11/2005, 16h29
  5. création d'une base de donnée par programme
    Par lassad dans le forum Bases de données
    Réponses: 9
    Dernier message: 18/10/2005, 16h36

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