La référence d'objet n'est pas définie à une instance d'un objet
ilooo
Messages postés
2
Statut
Membre
-
Kalissi Messages postés 221 Statut Membre -
Kalissi Messages postés 221 Statut Membre -
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
- Identifier un objet à partir d'une photo - Guide
- Reference pto - Accueil - Box & Connexion Internet
- Vente objet occasion entre particulier - Guide
- Dans le document à télécharger, les références des pièces détachées sont affichées par pays, puis par type de pièces. réorganisez le document pour avoir : les pays dans l'ordre alphabétique : allemagne, espagne, france et italie ; et pour chaque pays, les pièces d'auto, de bateau et de moto dans cet ordre. quelle est la référence de la pièce en ligne 500 ? ✓ - Forum Windows
- Dans la messagerie ci-dessous, envoyez un nouveau message à manon (manon@pixmail.org) en mettant en copie nina (nina@pixmail.org) : objet : colis bonjour, votre colis est arrivé. que répond manon ? ✓ - Forum Loisirs / Divertissements
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)