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 :

Editer, supprimer une entrée d'une base de données


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Points : 46
    Points
    46
    Par défaut Editer, supprimer une entrée d'une base de données
    Bonjour,

    je code du C# sur Visual Studio 2010 et j'aimerai intégrer à mon IHM une sorte de DataGridView affichant les champs d'une entrée de ma table ainsi qu'une petite icône afin d'éditer cette entrée et une autre pour la supprimer.

    Est-il possible de faire cela ?

    Merci d'avance.

  2. #2
    Membre actif
    Homme Profil pro
    Developpeur
    Inscrit en
    Février 2013
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2013
    Messages : 180
    Points : 271
    Points
    271
    Par défaut
    Bonjour,

    tout d'abord il y a deux façon de faire ce que tu veut,
    - la première, celle que je connais pas est en mode graphique depuis visual studio de crée une source de donnée qui soit lié à t'as base de donnée
    avec cette méthode tu n'a rien a faire quasiment ton DataGridView sera lié à UNE table de t'as base. quand tu modifiera une ligne ça modifiera quasiment automatiquement
    - la deuxième, celle que je préfère, en codant une requête SQL qui aliment ton datagridview avec la propriété DataSource et ensuite d'autre requête Update ou Insert suivant ce que tu veut faire

    le DataGridView peut faire quasiment tout ce que tu veut

    Après si tu veut plus d'explication ou comment s'y prendre, il faudrait détailler un peu plus t'as demande.


    PS : tu fait du C# en IRIS ??? si c'est le cas il y en a qui on du bol

  3. #3
    Membre du Club
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Points : 46
    Points
    46
    Par défaut
    Merci pour ta réponse rapide
    Effectivement, je fais du C# en IRIS pour le projet.
    Ce que je veux est simple. J'ai une table qui s'appelle College (je précise que j'utilise SQLite) avec Nom du collège, Nom du professeur, Nombre d'élèves et Nombre de prototypes comme champs. Dans une DataGridView, j'aimerai afficher sur chaque ligne, un collège avec ses champs, cela j'y arrive comme tu peux le voir sur l'image que j'ai joins. N'y a t-il pas autre chose que la DataGridView qui représente ma BDD avec une icone "Editer" et "Supprimer" qui agis directement sur la ligne ? Un peu comme sur PhpMyAdmin (je joins une image).
    Images attachées Images attachées   

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    bonjour

    si ta DGV (DatagridView) est liée (binding) à une datasource, alors, tu peux directement editer, Ajouter, supprimer les éléments depuis la DGV.

    Il faut juste ensuite faire en sorte que sur Appui sur un bouton, tu mettes à jour ta base de données en utilisant ta datasource.

    Il y a plein d'exemples sur le net qui explique comment faire ...
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  5. #5
    Membre actif
    Homme Profil pro
    Developpeur
    Inscrit en
    Février 2013
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2013
    Messages : 180
    Points : 271
    Points
    271
    Par défaut
    Non Alors le DataGridView est exactement ce que tu cherche

    dans un DataGridView tu peut insérer des control comme des boutons

    il suffit d'ajouter une colonnes de type bouton

    après tu peut créer t'es propres User Control pour plus de propreté

  6. #6
    Expert éminent 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
    Points : 7 903
    Points
    7 903
    Par défaut
    On peut aussi dessiner les 2 boutons dans le row header en adaptant le code ci-dessous qui affiche le n° de ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    MyGridView.RowHeadersWidth                  = 50 ;
      MyGridView.RowPrePaint                     += MyGridView_RowPrePaint ;
     
      private void MyGridView_RowPrePaint(object sender,DataMyGridViewRowPrePaintEventArgs e)
      {
        if (e.RowIndex >= 0 && MyGridView.Rows[e.RowIndex].HeaderCell.Value==null) 
          MyGridView.Rows[e.RowIndex].HeaderCell.Value = e.RowIndex.ToString() ;
      }
    On peut ensuite gèrer l'event RowHeaderMouseClick, en ayant auparavant utilisé l'event MouseDown pour determiner (via e.Location?) dans quelle partie du RowHeader on a cliqué.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  7. #7
    Membre du Club
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    tout fonctionne correctement, il y a juste une petite chose que je recherche à faire, rafraîchir ma Form1 à partir de ma Form2. Je m'explique. Ma Form2 sert à éditer les champs de ma base de données. Ma Form1 elle, affiche ma DataGridView remplis par une requête SQLite. Lorsque je suis sur ma Form2, après avoir remplis les champs que je veux éditer, je clic sur "Valider", lorsque je clic, je veux que ma DataGridView se mette à jour.

    Y a surement un moyen de faire ce que je veux mais je n'ai pas trouvé, quelqu'un aurait-il la solution ?

    Merci d'avance

  8. #8
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    2 options:

    Option 1:
    ta DGV (DatagridView) a pour datasource un "databindingsource", et à ce moment là, il suffit d'appeler la méthode "ResetBindings"

    option 2:
    la datasource de ta DGV est directement une liste ou autre, à ce moment là, tu n'as qu'à faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dgv.datasource = null;
    dgv.datasource = "ta source de données";
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  9. #9
    Membre actif
    Homme Profil pro
    Developpeur
    Inscrit en
    Février 2013
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2013
    Messages : 180
    Points : 271
    Points
    271
    Par défaut
    quand tu clique sur valider tu relance t'as (procedure/fonction) pour même à jour ton datasource puis tu l'affiche
    je ne voit pas ou tu bloque.

    si c'est au moment de rafraichir ton DataGridView, il faut que tu déclare un nouvel événement

  10. #10
    Membre du Club
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Points : 46
    Points
    46
    Par défaut
    Je ne peux pas appeler ma fonction pour afficher mon Grid dans ma Form2 car cette fonction est dans la Form1 et il n'y a pas de lien entre les 2 Form. Je vais voir ça theMonz31, merci

  11. #11
    Membre actif
    Homme Profil pro
    Developpeur
    Inscrit en
    Février 2013
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2013
    Messages : 180
    Points : 271
    Points
    271
    Par défaut
    Donc tu peut déclarer un nouvel événement dans t'as form2
    puis tu abonne t'as form1 a l'événement de t'as form2
    ensuite dans t'as form2 dans le bouton valider tu lève l'événement ce qui va déclanché t'as méthode de t'as form1

    et voila tes class dialogue entre elle

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/10/2013, 18h54
  2. [Toutes versions] Supprimer l'entrée d'une table via une liste déroulante
    Par mixnake dans le forum IHM
    Réponses: 4
    Dernier message: 20/04/2013, 07h33
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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