Je ne comprends pas l'erreur du code : référence d'objet n'est pas définie à une instance d'un objet
Bonjour,
Je suis débutant en VB.net et j'ai utilisé le code du Cours de Philippe Lasserre pour me connecter à ma base access et ajouter des enregistrements à une table.
Cependant, ça me met l'erreur suivante quand je clique sur le bouton pour ajouter: " La référence d'objet n'est pas définie à une instance d'un objet."
Je vous met le code que j'ai mis et mis un commentaire devant la ligne où j'ai l'erreur:
Code:
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
Imports System.Data
Imports System.Data.OleDb
Public Class Form1
' Déclaration Objet Connexion
Private ObjetConnection As OleDbConnection
' Déclaration Objet Commande
Private ObjetCommand As OleDbCommand
' Déclaration Objet DataAdapter
Private ObjetDataAdapter As OleDbDataAdapter
' Déclaration Objet DataSet
Private ObjetDataSet As New DataSet() 'Attention au New
'String contenant la 'Requête SQL'
Private strSql As String
' Déclaration Objet DataTable
Private ObjetDataTable As DataTable
' Déclaration Objet DataRow (ligne)
Private ObjetDataRow As DataRow
'Numéro de la ligne en cours
Private RowNumber As Integer 'Numéro de l'enregistrement courant
'Paramêtres de connexion à la DB
Private strConn As String
'Pour recompiler les données modifiées avant de les remettre dans le
'"DataAdapter"
Private ObjetCommandBuilder As OleDbCommandBuilder
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Initialisation de la chaîne de paramètres pour la connexion
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= C:\Users\mto\Desktop\MINI-ERP\ERP.accdb;"
'Initialisation de la chaîne contenant l'instruction SQL
strSql = "SELECT Type de produit.* FROM Type de produit"
'Instanciation d'un Objet Connexion
ObjetConnection = New OleDbConnection()
'Donner à la propriété ConnectionString les paramètres de connexion
ObjetConnection.ConnectionString = strConn
'Ouvrir la connexion
ObjetConnection.Open()
'Instancier un objet Commande
ObjetCommand = New OleDbCommand(strSql)
'Instancier un objet Adapter
ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
'initialiser l'objet Command
ObjetCommand.Connection() = ObjetConnection
'Avec l'aide de la propriété Fill du DataAdapter charger le DataSet
ObjetDataAdapter.Fill(ObjetDataSet, "Type de produit")
'Mettre dans un Objet DataTable une table du DataSet
ObjetDataTable = ObjetDataSet.Tables("Type de produit")
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' La référence d'objet n'est pas définie à une instance d'un objet."
ObjetDataRow = ObjetDataSet.Tables("Type de produit").NewRow()
ObjetDataRow("Type_de_produit") = Me.TextBox1.Text
ObjetDataSet.Tables("Type de produit").Rows.Add(ObjetDataRow)
'Pour modifier les valeurs changées dans le DataAdapter
ObjetCommandBuilder = New OleDbCommandBuilder(ObjetDataAdapter)
'Mise à jour
ObjetDataAdapter.Update(ObjetDataSet, "Type de produit")
'On vide le DataSet et on le 'recharge' de nouveau.
ObjetDataSet.Clear()
ObjetDataAdapter.Fill(ObjetDataSet, "Type de poduit")
ObjetDataTable = ObjetDataSet.Tables("Type de produit")
End Sub
End Class |
Merci d'avance pour votre aide
Julien