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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [VB.Net 2013] Enregistrer datatable (Ajouter, modifier et supprimer) d’ une DataGridView en tant qu’objet !
    Bonjour,
    Vu que vb.net est un IDE orienté objet, je me demande si il est possible de sauvegarder la table temporaire d’un datatable (Ajouter, modifier et supprimer) dans la table physique de ma base de données Sql Serveur en tant qu’objet !
    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
    Public Function Execute(ByVal Sql As String, ByVal Param As Object) As Object 'Retourne DataTable pour le  DataGridView1.DataSource =Execute(Sql ,Param )
            Dim myObject As New Object
            Using dataadapter As New SqlDataAdapter
                dataadapter.SelectCommand = New SqlCommand( _
                   Sql, _SQLConn)
                For Each c As Object In Param
                    If c.Size <> 0 Then dataadapter.SelectCommand.Parameters.AddWithValue(c.Name, c.Value)
                Next
                Dim ds As New DataTable()
                dataadapter.Fill(ds)
                Return ds
            End Using
        End Function
    Private Sub Valider_Click(sender As Object, e As EventArgs) Handles Valider.Click
    Dim Ds As DataTable = DataGridView1.DataSource
    End Sub

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    Qu'entends-tu par sauvegarder en tant qu'objet?

    Tu peux lier ta grille avec ta base de données via les mécaniques de DTO et l'utilisation d'Entity Framework

    Concernant la sauvegarde d'objets en base de données il me semble que des choses existe, mais ce ne sont pas des bases de données relationnelle.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour ZenZiTone a merci pour cette réponse.

    Qu'entends-tu par sauvegarder en tant qu'objet?
    Le datagrid est un objet, datadable est un objet et table1 est un objet donc je veux manipuler des objets !

    Tu peux lier ta grille avec ta base de données
    je ne veux pas lier ma grid avec la table les mise à jour doivent être explicite!


    J’affecte à ma datagrid une tranche de vie en fonction des informations dont je dispose dans une table exemple : select * from table1 where Id_seconaire= @Id_seconaire
    Ma fonction execute me revoit le datadable temporaire. L‘utilisateur fait ses modification et enregistre les données du datagrid dans la table1 dans mon exemple. Au lieu de parcourir la datagrid et exécuter les requêtes successives, je voudrais modifier les id existants de la table temporaire dans la table physique table1, supprimer les id inexistant de la table temporaire pour cet Id_seconaire dans la table physique table1 ou ajouter les nouvelles valeurs de la table temporaire pour cet Id_seconaire dans la table physique table1 dans l’exemple !

    Un peu comme si j’enregistrai un fichier Excel !

    Concernant la sauvegarde d'objets en base de données il me semble que des choses existe
    Merci je regarde.

    Edit: je veux éviter ça!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For l As Integer = 0 To DataGridView1.RowCount - 1
                For c As Integer = 0 To DataGridView1.Columns.Count - 1
                      sql = DataGridView1.Rows(l).Cells(c).Value
                Next
            Next
    Dernière modification par Invité ; 08/04/2016 à 11h56.

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Ce n'est pas directement dans SQLServer et cela aboutit dans un fichier distinct sur ton disque, mais cela permet de conserver des informations intermédiaires à quelque part.

    Tu peux enregistrer une DataTable, ou même un DataSet en entier, c'est le même principe, au format XML avec une seule ligne de code, et rappeler ton fichier avec une seule ligne de code. (Au pire, deux, si tu ne veux pas utiliser la surcharge qui enregistre le schéma avec la même instruction.)

    Comme je suis en train de faire une xième installation ou réparation de VS, je t'envoies cela de mémoire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataTable("Octave").writeXml(etc)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataTable("Octave").ReadXML
    Mais, honnêtement, tu ne risques pas grand chose à vérifier avant, dans ton aide ou dans MSDN.

    P.S. Si tu utilises le DataView pour trier ou filtrer tes informations, tu peux demander à ton DataView de convertir son contenu filtré en DataTable ou en Tableau en mémoire vive.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonsoir clément ,

    Je comprend, mais c'est pas exactement ce que je veux faire.

    Si ma table était lié à ma datagrid, toute valeurs ajoute / modifier / supprimé, serait reporter automatiquement ou dans ma base Sql serveur.

    Le problème qu'il me faut valider la cohérence des données éparpillées sur autres onglets d'un multipages et apporter d'autres informations lié au règles de gestion.

    De plus l'utilisateur peut sortir du formulaire sans vouloir enregistrer son travail.

    En d'autres terme un truc du genre datagrid.update mais qui ne sauvegarde pas dans la table temporaire mais dans ma base Sql serveur.

    La je vais dire un grosse bêtise mais j'y vais!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dataadapter.UpdateCommand = New SqlCommand( _
                   DataGridView1.DataSource.??????? , _SQLConn)

  6. #6
    Invité
    Invité(e)
    Par défaut
    Petite précision, si je n'utilise pas de tables liées c'est justement parce que je ne veux pas qu'elles le soit!

    Nous sommes en programmation Object, c'est bien le diable si je peux pas utiliser le datatable de ma grid pour mettre à jour ma base de données!

    MaTable.Enregistrement= DataGridView1.DataSource.Enregistrement!

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

Discussions similaires

  1. [Débutant] Ajouter, modifier et supprimer les données d'une datagridview
    Par Aogiri dans le forum Windows Forms
    Réponses: 2
    Dernier message: 01/06/2015, 11h03
  2. ajout dynamique de colonne dans une datagridview
    Par djelloharmel dans le forum Développement Windows
    Réponses: 0
    Dernier message: 04/02/2013, 10h22
  3. ajout dynamique de colonne dans une datagridview
    Par djelloharmel dans le forum Développement Windows
    Réponses: 0
    Dernier message: 04/02/2013, 10h17
  4. Réponses: 12
    Dernier message: 05/08/2009, 13h24
  5. Réponses: 1
    Dernier message: 24/03/2006, 18h59

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