La référence d'objet n'est pas définie à une instance d'un objet
ilooo
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Kalissi Messages postés 218 Date d'inscription Statut Membre Dernière intervention -
Kalissi Messages postés 218 Date d'inscription Statut Membre Dernière intervention -
bonjour,
je développe une application sur la VB.net et j'utilise la technologie ADO( le mode deconnecté) et j'ai rencontré un problème : "la référence d'objet n'est pas définie à une instance d'un objet"
voilà le code que j'ai ecrit:
Imports System.Data.SqlClient
Public Class Form1
Dim con As New SqlConnection("DATA Source=.\sqlexpress;Initial Catalog=test;Integrated Security=True")
Dim ds As New DataSet("test")
Dim da As New SqlDataAdapter
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If con.State = ConnectionState.Closed Then
con.Open()
End If
da.SelectCommand = New SqlCommand("Select * From client")
da.SelectCommand.Connection = con
da.MissingSchemaAction = MissingSchemaAction.AddWithKey
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ds.Tables("client").Rows.Add(TextBox1.Text.ToString, TextBox2.Text)
End Sub
le message s'affiche au niveau de ce ligne là:
--->> ds.Tables("client").Rows.Add(TextBox1.Text.ToString, TextBox2.Text)
Merci d'avance pour votre aide :)
je développe une application sur la VB.net et j'utilise la technologie ADO( le mode deconnecté) et j'ai rencontré un problème : "la référence d'objet n'est pas définie à une instance d'un objet"
voilà le code que j'ai ecrit:
Imports System.Data.SqlClient
Public Class Form1
Dim con As New SqlConnection("DATA Source=.\sqlexpress;Initial Catalog=test;Integrated Security=True")
Dim ds As New DataSet("test")
Dim da As New SqlDataAdapter
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If con.State = ConnectionState.Closed Then
con.Open()
End If
da.SelectCommand = New SqlCommand("Select * From client")
da.SelectCommand.Connection = con
da.MissingSchemaAction = MissingSchemaAction.AddWithKey
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ds.Tables("client").Rows.Add(TextBox1.Text.ToString, TextBox2.Text)
End Sub
le message s'affiche au niveau de ce ligne là:
--->> ds.Tables("client").Rows.Add(TextBox1.Text.ToString, TextBox2.Text)
Merci d'avance pour votre aide :)
A voir également:
- Power bi la référence d'objet n'est pas définie à une instance d'un objet
- Reference pto - Accueil - Box & Connexion Internet
- Vente objet occasion entre particulier - Guide
- Identifier un objet à partir d'une photo - Guide
- Avis d'instance ✓ - Forum Réseaux sociaux
- Objet interdit en cabine ryanair - Guide
3 réponses
Bonjour,
--->> ds.Tables("client").Rows.Add(TextBox1.Text.ToString, TextBox2.Text)
Il te faut tenir comptes des sous objets te ton objet de niveau 1
Tu défini :
Dim ds As New DataSet("test")
donc ds.tables("client") n'exite pas.
en te référant à l'exemple ici :
https://plasserre.developpez.com/cours/vb-net/?page=bases-donnees2#LXVII-F-2
J'ai supprimer les commentaires, mais c'est le principe.
Private ObjetDataSet As New DataSet
Private ObjetDataTable As New DataTable
ObjetCommand = New OleDbCommand(strSql)
ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
ObjetDataAdapter.Fill(ObjetDataSet, "FICHEPATIENT")
ObjetDataTable = ObjetDataSet.Tables("FICHEPATIENT")
tu trouveras que l'on ajoute une row à un dataset
et qu'on remplie une table à partir d'un dataset.
K
--->> ds.Tables("client").Rows.Add(TextBox1.Text.ToString, TextBox2.Text)
Il te faut tenir comptes des sous objets te ton objet de niveau 1
Tu défini :
Dim ds As New DataSet("test")
donc ds.tables("client") n'exite pas.
en te référant à l'exemple ici :
https://plasserre.developpez.com/cours/vb-net/?page=bases-donnees2#LXVII-F-2
J'ai supprimer les commentaires, mais c'est le principe.
Private ObjetDataSet As New DataSet
Private ObjetDataTable As New DataTable
ObjetCommand = New OleDbCommand(strSql)
ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
ObjetDataAdapter.Fill(ObjetDataSet, "FICHEPATIENT")
ObjetDataTable = ObjetDataSet.Tables("FICHEPATIENT")
tu trouveras que l'on ajoute une row à un dataset
et qu'on remplie une table à partir d'un dataset.
K
je connai pas bcp VB mais ajouter quelque chose comme ça dans le Form1_Load:
et essayer
Ds =New Dataset()
et essayer
Bonjour,
Dans un premier temps il faudrait connaitre le type de BD que tu utilise !!!
Tu trouveras ici toutes les types de BDs ainsi que la chaine de connection.
http://http://www.connectionstrings.com/
"la référence d'objet n'est pas définie à une instance d'un objet"
--->> ds.Tables("client").Rows.Add(TextBox1.Text.ToString, TextBox2.Text)
.Tables("client") n'est pas définie à une instance d'objet.
Dim ds As New DataSet("test")
donc ds.tables("client") n'exite pas.
Un DataSet n'est pas un DataTable !
Moi, j'utilise des objets ainsi que des collections d'objets pour récupérer
les données afin de la monter jusqu'à l'interface.
Voici un exemple :
Ayant change de version Linux OpenSuse j'ai des problème avec la tabulation,
en effectuant un copier/coller dans un nouveau projet VB, tu pourras y voir plus clair.
K
Dans un premier temps il faudrait connaitre le type de BD que tu utilise !!!
Tu trouveras ici toutes les types de BDs ainsi que la chaine de connection.
http://http://www.connectionstrings.com/
"la référence d'objet n'est pas définie à une instance d'un objet"
--->> ds.Tables("client").Rows.Add(TextBox1.Text.ToString, TextBox2.Text)
.Tables("client") n'est pas définie à une instance d'objet.
Dim ds As New DataSet("test")
donc ds.tables("client") n'exite pas.
Un DataSet n'est pas un DataTable !
Moi, j'utilise des objets ainsi que des collections d'objets pour récupérer
les données afin de la monter jusqu'à l'interface.
Voici un exemple :
Public Class Lecture Private OuvrirConnection() Try Connection.ConnectionString = "Provider = Microsoft.Jet.OleDB.4.0;" & "DataSource =" & /Dosier/Video.mdb; Connection.Open Catch ex As Exception Debug.Writeline("Erreur de connection") End Try End Sub Private Function CreerInstance(ByVal objet As DataRow, ByVal pChemin As String) As Type_Entite Debug.WriteLine("Entree - VIDEO_SQL : CreerInstance") Dim clientEntite As Type_Entite = New Type_Entite Try With clientEntite If (objet.Item(Type_Indices.ColumnIndex_MediaCassette) IsNot Nothing) Then .MediaCassette = CType(objet.Item(Type_Indices.ColumnIndex_MediaCassette), String) End If If (objet.Item(Type_Indices.ColumnIndex_MediaAnnee) IsNot Nothing) Then .MediaAnnee = CType(objet.Item(Type_Indices.ColumnIndex_MediaAnnee), Int32) End If If (objet.Item(Type_Indices.ColumnIndex_MediaTitreFrancais) IsNot Nothing) Then .MediaTitre_Francais = CType(objet.Item(Type_Indices.MediaTitreFrancais), String) End If If (objet.Item(Type_Indices.ColumnIndex_MediaEpisode) IsNot Nothing) Then .MediaEpisode = CType(objet.Item(Type_Indices.ColumnIndex_MediaEpisode), Int32) End If If (objet.Item(Type_Indices.ColumnIndex_MediaNationalite) IsNot Nothing) Then .MediaNationalite = CType(objet.Item(Type_Indices.ColumnIndex_MediaNationalite), String) End If If (objet.Item(Type_Indices.ColumnIndex_MediaStyle) IsNot Nothing) Then .MediaStyle = CType(objet.Item(Type_Indices.ColumnIndex_MediaStyle), String) End If If (objet.Item(Type_Indices.ColumnIndex_MediaCategorie) IsNot Nothing) Then .MediaCategorie = CType(objet.Item(Type_Indices.ColumnIndex_MediaCategorie), String) End If If (objet.Item(Type_Indices.ColumnIndex_MediaDuree) IsNot Nothing) Then .MediaDuree = CType(objet.Item(Type_Indices.ColumnIndex_MediaDuree), String) End If If (objet.Item(Type_Indices.ColumnIndex_MediaCote) IsNot Nothing) Then .MediaCote = CType(objet.Item(Type_Indices.ColumnIndex_MediaCote), Int32) End If If (objet.Item(Type_Indices.ColumnIndex_MediaRealisateur) IsNot Nothing) Then .MediaRealisateur = CType(objet.Item(Type_Indices.ColumnIndex_MediaRealisateur), String) End If If (objet.Item(Type_Indices.ColumnIndex_MediaSerie) IsNot Nothing) Then .MediaSerie = CType(objet.Item(Type_Indices.ColumnIndex_MediaSerie), String) End If If (objet.Item(Type_Indices.ColumnIndex_MediaTitreAnglais) IsNot Nothing) Then .MediaTitreAnglais = CType(objet.Item(Type_Indices.ColumnIndex_MediaTitreAnglais), String) End If If (objet.Item(Type_Indices.ColumnIndex_MediaMode) IsNot Nothing) Then .MediaMode = CType(objet.Item(Type_Indices.ColumnIndex_MediaMode), String) End If If (objet.Item(Type_Indices.ColumnIndex_MediaFicheOK) IsNot Nothing) Then .MediaFiche_OK = CType(objet.Item(Type_Indices.ColumnIndex_MediaFicheOK), String) End If If (objet.Item(Type_Indices.ColumnIndex_MediaStock) IsNot Nothing) Then .MediaStock = CType(objet.Item(Type_Indices.ColumnIndex_MediaStock), String) End If If (objet.Item(Type_Indices.ColumnIndex_MediaClasse) IsNot Nothing) Then .MediaClasse = CType(objet.Item(Type_Indices.ColumnIndex_MediaClasse), String) End If If (objet.Item(Type_Indices.ColumnIndex_MediaType) IsNot Nothing) Then .MediaType = CType(objet.Item(Type_Indices.ColumnIndex_MediaType), String) End If If (objet.Item(Type_Indices.ColumnIndex_MediaQualite) IsNot Nothing) Then .MediaQualite = CType(objet.Item(Type_Indices.ColumnIndex_MediaQualite), Int32) End If If (objet.Item(Type_Indices.ColumnIndex_MediaCritiques) IsNot Nothing) Then .MediaCritiques = CType(objet.Item(Type_Indices.ColumnIndex_MediaCritiques), Int32) End If If (objet.Item(Type_Indices.ColumnIndex_MediaNumeroCode) IsNot Nothing) Then .MediaNumeroCode = CType(objet.Item(Type_Indices.ColumnIndex_MediaNumeroCode), Int32) End If If (objet.Item(Type_Indices.ColumnIndex_MediaActeurs_P) IsNot Nothing) Then .MediaActeurs_P = CType(objet.Item(Type_Indices.ColumnIndex_MediaActeurs_P), String) End If If (objet.Item(Type_Indices.ColumnIndex_MediaActeurs_S) IsNot Nothing) Then .MediaActeurs_S = CType(objet.Item(Type_Indices.ColumnIndex_MediaActeurs_S), String) End If End With Debug.WriteLine("Sortie - VIDEO_SQL : CreerInstance") Catch ex As exException Debug.WriteLine("Erreur - VIDEO_SQL : CreerInstance") End Try Return clientEntite End Function Public Function Obtenir_Liste_Videos(ByVal Critere As Type_Criteres, ByVal pChemin As String) As Type_Collection Debug.WriteLine("Entree - Video_SQL - Obtenir_Liste_Vide") OuvrirConnection() Dim MonAdapteur As OleDb.OleDbDataAdapter = Nothing Dim MonDataTable As DataTable = Nothing Dim MonDataSet As New DataSet() Dim DataRowLocal As DataRow Dim MaCollection As New Type_Collection Dim MonEntite As New Type_Entite Try Dim reqSQL As String = "SELECT * FROM TableVideo;" MonAdapteur = New OleDbDataAdapter(reqSQL, Connexion) MonAdapteur.Fill(MonDataSet, "TableVideo") MonDataTable = MonDataSet.Tables("TableVideo") For Each DataRowLocal In MonDataTable.Rows MonEntite = CreerInstance(DataRowLocal, pChemin) MaCollection.Add(MonEntite) Next Debug.WriteLine("Sortie - Video_SQL - Obtenir_Liste_Videos") Catch ex As Exception Debug.WriteLine("Erreur - Video_SQL - Obtenir_Liste_Videos") MaCollection = Nothing Finaly Connection.Close End Try Return MaCollection End Function End Class
Ayant change de version Linux OpenSuse j'ai des problème avec la tabulation,
en effectuant un copier/coller dans un nouveau projet VB, tu pourras y voir plus clair.
K
merci bien pour votre aide mais je crois que le code est correcte mais j'ai un problème avec l' SQL (j'arrive pas à le connecter avec le serveur)