Gwendal3
Messages postés60Date d'inscriptionsamedi 4 mars 2006StatutMembreDernière intervention15 août 2011
-
5 oct. 2006 à 20:40
Gwendal3
Messages postés60Date d'inscriptionsamedi 4 mars 2006StatutMembreDernière intervention15 août 2011
-
7 oct. 2006 à 12:07
Bonjour,
Mon but est de créer un sub me permettant de charger le dataset de différentes tables
Table N° 1 = > 1 DataAdapter, 1 DataSet, 1 DataTable
Table N° 2 => 1 DataAdapter, 1 DataSet, 1 DataTable
Imports System
Imports System.Data
Imports System.Data.OleDb
Public Class Form1
#Region "Déclaration des variables"
' Déclaration Objet Connexion
Private objConnexion As OleDbConnection
' Paramètres de connexion à la base
Private strConnexion As String
' String contenant la 'Requête SQL'
Private strSql As String
' Déclaration Objet Commande
Private objCommand As OleDbCommand
' Pour recompiler les données modifiées avant de les remettre dans le "DataAdapter"
Private objCommandBuilder As OleDbCommandBuilder
' !=> Véhicule <=!
' Déclaration Objet DataAdapter
Private objDataAdapterVehicule As OleDbDataAdapter
' Déclaration Objet DataSet
Private objDataSetVehicule As New DataSet()
' Déclaration Objet DataTable
Private objDataTableVehicule As DataTable
' Déclaration Objet DataRow (ligne)
Private objDataRowVehicule As DataRow
' !=> Répertoire <=!
' Déclaration Objet DataAdapter
Private objDataAdapterRepertoire As OleDbDataAdapter
' Déclaration Objet DataSet
Private objDataSetRepertoire As New DataSet()
' Déclaration Objet DataTable
Private objDataTableRepertoire As DataTable
' Déclaration Objet DataRow (ligne)
Private objDataRowRepertoire As DataRow
#End Region
Private Sub InitConnexionTest(ByVal strSqlFiltre As String, ByVal PassDataAdapter As OleDbDataAdapter, _
ByVal PassDataSet As DataSet, ByVal PassDataTable As DataTable, _
ByVal PassNomtable As String)
Try
' Vider le DataSet
PassDataSet.Clear()
'Initialisation de la chaîne de paramètres pour la connexion
strConnexion = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source =" & Application.StartupPath & "\Source\Parc Vehicule.mdb;"
'Initialisation de la chaîne contenant l'instruction SQL
strSql = strSqlFiltre
'Instanciation d'un objet Connexion
objConnexion = New OleDbConnection()
'Donner à la propriété ConnectionString les paramètres de connexion
objConnexion.ConnectionString = strConnexion
'Ouvrir la connexion
objConnexion.Open()
'Instancier un objet Commande
objCommand = New OleDbCommand(strSql)
'Instancier un objet Adapter
PassDataAdapter = New OleDbDataAdapter(objCommand)
'Initialiser l'objet Command
objCommand.Connection() = objConnexion
'Avec l'aide de la propriété Fill du DataAdapter charger le DataSet
PassDataAdapter.Fill(PassDataSet, PassNomtable)
'Mettre dans un objet DataTable une table du DataSet
PassDataTable = PassDataSet.Tables(PassNomtable)
Catch ex As Exception
'Message d'erreur
MessageBox.Show(ex.ToString, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
' Fermer la connexion
objConnexion.Close()
End Try
End Sub
Private Sub cmdChargerVehicule_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdChargerVehicule.Click
Lorsque je souhaite charger une table dans un dataset, j'appelle InitConnexionTest en précisant:
strSqlFiltre As String
PassDataAdapter As OleDbDataAdapter
PassDataSet As DataSet
PassDataTable As DataTable
PassNomtable As String
Lorsque j'ai voulu vérifier la valeur de objDataTableVehicule.Rows(0).Item("ID_TblRepertoire").ToString
en faisant Me.txtVoirDataTable.Text = objDataTableVehicule.Rows(0).Item("ID_TblRepertoire").ToString j'ai eu la même erreur.
Le problème viens donc de mon DataTable qui est nul. Mais pourquoi ?
Si je mets charge avec le bouton cmdChargerRepertoire en indiquant une valeur le chargement est correct....
Comme faire ?
Merci d'avance.
Gwendal
Le message d'erreur
L'exception System.NullReferenceException n'a pas été gérée
Message="La référence d'objet n'est pas définie à une instance d'un objet."
Source="Gestion Parc"
A voir également:
[Vb.net 2005]_Routine Sub renvoyant DataTable vide ?