Objet net set in instance dataset

ouat19 Messages postés 31 Date d'inscription mardi 12 septembre 2006 Statut Membre Dernière intervention 5 mai 2011 - 19 févr. 2010 à 21:18
cs_christoni Messages postés 140 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 1 novembre 2010 - 21 févr. 2010 à 10:55
bonjour les membres du forum j'ai un veritable problème pour enregistrer des donnée dans ma base de donnnée avec Vusual studio 2008.

voici le message affiché: "La référence d'objet n'est pas définie à une instance d'un objet"
ensuite la ligne "Row = Dset.Tables("CLIENT").NewRow" est selectionnée

voici le code de mon bouton enregistrer
Function AJOUTER()
Try
Row = Dset.Tables("CLIENT").NewRow
Row("Nom") = TextBox1.Text
Row("Prenom") = TextBox2.Text
Row("age") = TextBox3.Text
Row("contact") = MaskedTextBox1.Text
Row("sexe") = ComboBox1.Text
Row("fonction") = TextBox5.Text
Dset.Tables("CLIENT").Rows.Add(Row)
ObjComBui = New OleDbCommandBuilder(Dadpter)
Dadpter.Update(Dset, "CLIENT")
Dset.Tables("CLIENT").Clear()
Dadpter.Fill(Dset, "CLIENT")
tab = Dset.Tables("CLIENT")
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function

3 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
19 févr. 2010 à 23:04
Salut,

Regardes comment faire dans la saga .net

http://www.microsoft.com/france/vision/saga-dot-net/Default.aspx?chap=5

Il semble que ton dataset n'est pas instancier?

Tu t'y prends de la mauvaise manière pour gérer les datasets.
0
ouat19 Messages postés 31 Date d'inscription mardi 12 septembre 2006 Statut Membre Dernière intervention 5 mai 2011
19 févr. 2010 à 23:11
merci je vais y jeter un coup d'oeil
0
cs_christoni Messages postés 140 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 1 novembre 2010 7
21 févr. 2010 à 10:55
Bonjour,
nhervagault a raison,
il faut créer la table et instancier le dataset soit avec les contrôles fournis pas MS soit par du code comme suit :

    Dim dset As DataSet

    Private Sub ConstructionTable()

        '*** Construction de la table et instanciation du dataset
        '*** 1ère colonne
        Dim newTable As DataTable = New DataTable("CLIENT")
        Dim column As DataColumn
        column = New DataColumn()
        column.DataType = System.Type.GetType("System.String")
        column.ColumnName = "Nom"
        column.ReadOnly = False '(True pour clé primaire)
        column.Unique = False '(True pour clé primaire)
        '*** Add the Column to the DataColumnCollection.
        newTable.Columns.Add(column)

        '*** 2ième column.
        column = New DataColumn()
        column.DataType = System.Type.GetType("System.String")
        column.ColumnName = "Prenom"
        column.AutoIncrement = False
        column.Caption = "Prenom"
        column.ReadOnly = False
        column.Unique = False
        newTable.Columns.Add(column)

        '*** 3ième column.
        column = New DataColumn()
        column.DataType = System.Type.GetType("System.String")
        column.ColumnName = "age"
        column.AutoIncrement = False
        column.Caption = "age"
        column.ReadOnly = False
        column.Unique = False
        newTable.Columns.Add(column)

        '*** 4ième column.
        column = New DataColumn()
        column.DataType = System.Type.GetType("System.String")
        column.ColumnName = "contact"
        column.AutoIncrement = False
        column.Caption = "contact"
        column.ReadOnly = False
        column.Unique = False
        newTable.Columns.Add(column)

        '*** 5ième column.
        column = New DataColumn()
        column.DataType = System.Type.GetType("System.String")
        column.ColumnName = "sexe"
        column.AutoIncrement = False
        column.Caption = "sexe"
        column.ReadOnly = False
        column.Unique = False
        newTable.Columns.Add(column)

        '*** 6ième column.
        column = New DataColumn()
        column.DataType = System.Type.GetType("System.String")
        column.ColumnName = "fonction"
        column.AutoIncrement = False
        column.Caption = "fonction"
        column.ReadOnly = False
        column.Unique = False
        newTable.Columns.Add(column)

        ''*** Facultatif pour avoir une clé primaire :
        ''*** Make the ID column the primary key column.
        'Dim PrimaryKeyColumns(0) As DataColumn
        'PrimaryKeyColumns(0) = newTable.Columns("Nom")
        'newTable.PrimaryKey = PrimaryKeyColumns

        ' Instantiate the DataSet variable.
        dset = New DataSet()

        ' Add the new DataTable to the DataSet.
        dset.Tables.Add(newTable)

    End Sub


On peut voir le résultat immédiatement dans un DGV au lancement de l'application avec les deux sub qui suivent :

    Private Sub VueDansDGV()
        ' Instruct the DataGrid to bind to the DataSet, with the Table.
        bindingSource1.DataSource = dset.Tables("CLIENT")
        DataGridView1.DataSource = bindingSource1
    End Sub


    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        ConstructionTable()
        VueDansDGV()
    End Sub


et là remplir de données :

    Dim Row As DataRow
    Dim ObjComBui As OleDbCommandBuilder
    Dim Dadpter As OleDbDataAdapter
    Dim tab As DataTable

    Function AJOUTER()
        Try
            Row = dset.Tables("CLIENT").NewRow
            Row("Nom") = TextBox1.Text
            Row("Prenom") = TextBox2.Text
            Row("age") = TextBox3.Text
            Row("contact") = MaskedTextBox1.Text
            Row("sexe") = ComboBox1.Text
            Row("fonction") = TextBox5.Text
            dset.Tables("CLIENT").Rows.Add(Row)

            '*** CONNECTION BD ET DATASET pour mise à jour.........
            ''Dadpter = New OleDbDataAdapter()
            ''Dadpter.SelectCommand = New OleDbCommand("..........", ...........)
            ''ObjComBui = New OleDbCommandBuilder(Dadpter)
            ''Dadpter.Fill(dset, "CLIENT")
            ''Dadpter.Update(dset, "CLIENT")
            ''dset.Tables("CLIENT").Clear()
            ''tab = dset.Tables("CLIENT")
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Function


Après liaison et mise à jour du dataset et de la base de données, je ne connais pas.
0