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 :

Copier DataGridViewRow a une DataTable


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 66
    Par défaut Copier DataGridViewRow a une DataTable
    Bonjour, Utilisant le VB Net (2005, l'Access (2003) sous des formulaires de Windows, j'ai l'utilisé le magicien de Visual Studio il a ainsi créé le DataSet1, tblProductsBindingSource et le tblProductsTableAdapter , j'ai l'effacé le tblBindingNavigator, également mon DataSet se compose de 2 Data Tables qui sont tblProducts et tblChosenProducts, actuellement le tblChosenProducts est vide mais a tout même le Table Style de tblProducts. Ainsi à Form Load du projet chaque choses fonctionne très bien, ce que je voudrais faire est quand je clique dans une cellule de dgProducts (le DataGridView sur mon formulaire) ca doit peupler mon deuxième Data Table (tblChosenProducts) et mettre à jour à la base de données (Invent_ le 14 avril), svp me montrer comment au codé ceci. Voir la partie de mon programme :

    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
    Public Sub DgProduct_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DgProduct.CellClick
     
            ' Declare une variable noamé chosenProductRow de type ProductRow.ownerRow
            Dim chosenProductRow As ProductDataSet.tblProductRow
            ' Récupérer l'object ProductRow de la ligne du DataGridView row;
            ' assigner a la variable l' object ChosenProductRow 
            ChosenProductRow = CType(CType(Me.tblProductBindingSource.Current, DataRowView).Row, ProductDataSet.tblProductRow)
     
            ' Utilise le  data de la ligne clicked row.
            Dim dr As DataRow = ChosenProductRow
     
            Dim o As Object
            For Each o In dr.ItemArray
     
            Next
     
     
    End Sub
    Merci à l’avance..

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2008
    Messages : 161
    Par défaut
    Bonjour,

    Donc si j'ai bien compris, tu veux un bout de code qui te permettra de mettre le contenu de ton GridView dans une table access ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 66
    Par défaut Suivi
    T'as tout a fait raison

  4. #4
    Membre confirmé
    Homme Profil pro
    Informaticien
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien
    Secteur : Service public

    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut
    Bonjour,

    Voici ce que je te propose:

    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
    26
    27
    28
        Private Sub InsertData()
            Dim i As Integer
     
            Dim TableObject(4, 2) As Object
     
            TableObject(0, 0) = "@Data1"
            TableObject(0, 1) = OleDbType.Double
            TableObject(1, 0) = "@Data2"
            TableObject(1, 1) = OleDbType.Boolean
            TableObject(2, 0) = "@Data3"
            TableObject(2, 1) = OleDbType.Integer
            TableObject(3, 0) = "@Data4"
            TableObject(3, 1) = OleDbType.VarChar
            TableObject(4, 0) = "@Data5"
            TableObject(4, 1) = OleDbType.Date
     
            For i = 0 To DataGridView.RowCount - 1
     
                TableObject(0, 2) = DataGridView.Item(0, i).Value
                TableObject(1, 2) = DataGridView.Item(1, i).Value
                TableObject(2, 2) = DataGridView.Item(2, i).Value
                TableObject(3, 2) = DataGridView.Item(3, i).Value
                TableObject(4, 2) = DataGridView.Item(4, i).Value
     
     
                AccessSub("INSERT INTO Table (Data1, Data2, Data3, Data4, Data5) VALUE (?, ?, ?, ?, ?)", "Table", TableObject)
            Next
        End Sub
    à utiliser avec :

    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
        Public Sub AccessSub(ByVal RequeteSQL As String, ByVal Table As String, ByRef TableObject(,) As Object)
            Dim MyAdapter As OleDbDataAdapter = New OleDbDataAdapter(RequeteSQL, MyConnection)
            Dim i As Integer
     
            For i = 0 To TableObject.GetUpperBound(0)
                MyAdapter.SelectCommand.Parameters.Add(TableObject(i, 0), TableObject(i, 1)).Value = TableObject(i, 2)
            Next
     
            Try
                MyDataSetTemp.Clear()
                MyAdapter.Fill(MyDataSetTemp, Table)
                'A ce niveau les données résultantes de la requete se trouvent dans => MyDataSet.Tables(0)
            Catch ex As Exception
                MessageBox.Show("Failed to connect to database! " & ex.Message)
            End Try
     
        End Sub
    J'espère que ça t'aidera.

    À+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 66
    Par défaut Suivi
    Suite à cela, tu me proposes un autre DataSet et un DataAdapter pourquoi? J'ai déjà un DataSet1 fortement typé et un tblChosenProduitsTableAdapter, je me demande pourquoi que lors du remplissage de dgItems on ne pourrait pas aussi remplir la ligne(row) de la datatable tblChosenProduits en même temps et après faire la mise a jour de la table, du DataSet1, et finalement la Bdd avec Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Me.Validate()
    Me.tblChosenProduitsBindingSource.EndEdit()
    Me.tblChosenProduitsTableAdapter.Update(Me.ProduitsDatasSet.tblChosenProduits)
    Je me pose aussi la question pourquoi utiliser des technologies de Vb net(2003) alors que j'utilise le Vb Net (2005). Suis je dans le champs? J'inclus un zip de mon exemple. Merci encore

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/05/2012, 11h49
  2. dupliquer/copier une datatable
    Par tortuegenie dans le forum ASP.NET
    Réponses: 3
    Dernier message: 23/07/2009, 13h52
  3. [ADO.NET][C#] Comment copier une DataRow d'une DataTable à une autre ?
    Par Invité dans le forum Accès aux données
    Réponses: 3
    Dernier message: 29/04/2006, 00h11
  4. [MYSQL] Copier contenue d'une table vers...
    Par naseeb18 dans le forum Requêtes
    Réponses: 9
    Dernier message: 04/04/2004, 13h40
  5. Copier et afficher une copie d'ecran
    Par Bobx dans le forum Langage
    Réponses: 6
    Dernier message: 02/08/2002, 22h20

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