[DotNet] Acces aux données d'une table , I need Help
1 réponse
mail_taf
Bonjour,
Je cherche à accéder aux données d'une table access toute simple ,
mais voila j'ai l'erreur suivante :
"Une exception non gérée du type 'System.Data.OleDb.OleDbException'
s'est produite dans system.data.dll"
Alors que j'utilise la même fonction juste avant pour accéder aussi à
une table simple, et ça marche !!
Voici mon code
Namespace Base
Public Class Database
Private cnxBase As Base.cnxBase
Private oCommand As OleDbCommandBuilder
Private dataAdapter As OleDbDataAdapter
Public myDataSet As New DataSet
Private _nomTable As String
Private columnID As String
Public Sub New(ByVal iniCnxBase As Base.cnxBase)
cnxBase = iniCnxBase
'Possibilité de vérifier l'existence de la base
End Sub
Public Sub execSQL(ByVal sql As String, Optional ByVal table As
String = "table")
Me._nomTable = table
dataAdapter = New OleDbDataAdapter(sql,
cnxBase.oConnexion)
dataAdapter.AcceptChangesDuringFill = True
oCommand = New OleDb.OleDbCommandBuilder(dataAdapter)
myDataSet = New Data.DataSet
If _nomTable <> "" Then
dataAdapter.Fill(myDataSet, table) * endroit où
ressort l'erreur
Else
dataAdapter.Fill(myDataSet)
End If
End Sub
End Class
End Namespace
Lancement
Public Function getControleur() As Base.Database
'Définition d'un nouveau dataset
Dim db As Base.Database = New Base.Database(cnxBase)
Dim sql As String
sql = "SELECT " & champsControleur & " FROM
T_TITRE_CONTROLEUR"
db.execSQL(sql, "T_TITRE_CONTROLEUR")
Return db
End Function
où champsControleur est déclaré comme suit :
Private champsControleur As String = "DDTEFP, SECTION, GRADE,
ADRESSE, CODE_POSTAL, VILLE"
Ensuite j'utilise mon résultat comme cela :
'Enrichissement des informations
If dataDb.getNbRow > 0 Then
Me.DDTEFP = dataDb.getItem(0, "DDTEFP")
Me.Section = dataDb.getItem(0, "SECTION")
Me.Grade = dataDb.getItem(0, "GRADE")
Me.AdresseCtl = dataDb.getItem(0, "ADRESSE")
Me.CPCtl = dataDb.getItem(0, "CODE_POSTAL")
Me.VilleCtl = dataDb.getItem(0, "VILLE")
Else
dataDb.addNewRow()
End If
J'ai vraiment cherché partout mais là je sèche
Merci par avance pour votre aide...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred.M
Bonjour ChrisK, Ne t'est t-il pas possible de tout gérer en Oledb ? Ce serait dans ce cas nettement plus simple !
Fred.M.
"ChrisK" a écrit :
Bonjour,
Je cherche à accéder aux données d'une table access toute simple , mais voila j'ai l'erreur suivante :
"Une exception non gérée du type 'System.Data.OleDb.OleDbException' s'est produite dans system.data.dll"
Alors que j'utilise la même fonction juste avant pour accéder aussi à une table simple, et ça marche !!
Voici mon code
Namespace Base Public Class Database
Private cnxBase As Base.cnxBase Private oCommand As OleDbCommandBuilder Private dataAdapter As OleDbDataAdapter Public myDataSet As New DataSet Private _nomTable As String Private columnID As String
Public Sub New(ByVal iniCnxBase As Base.cnxBase) cnxBase = iniCnxBase
'Possibilité de vérifier l'existence de la base
End Sub
Public Sub execSQL(ByVal sql As String, Optional ByVal table As String = "table") Me._nomTable = table
dataAdapter = New OleDbDataAdapter(sql, cnxBase.oConnexion) dataAdapter.AcceptChangesDuringFill = True oCommand = New OleDb.OleDbCommandBuilder(dataAdapter) myDataSet = New Data.DataSet
If _nomTable <> "" Then dataAdapter.Fill(myDataSet, table) * endroit où ressort l'erreur Else dataAdapter.Fill(myDataSet) End If
End Sub End Class End Namespace
Lancement Public Function getControleur() As Base.Database 'Définition d'un nouveau dataset Dim db As Base.Database = New Base.Database(cnxBase) Dim sql As String
sql = "SELECT " & champsControleur & " FROM T_TITRE_CONTROLEUR" db.execSQL(sql, "T_TITRE_CONTROLEUR") Return db End Function où champsControleur est déclaré comme suit : Private champsControleur As String = "DDTEFP, SECTION, GRADE, ADRESSE, CODE_POSTAL, VILLE"
Ensuite j'utilise mon résultat comme cela : 'Enrichissement des informations If dataDb.getNbRow > 0 Then Me.DDTEFP = dataDb.getItem(0, "DDTEFP") Me.Section = dataDb.getItem(0, "SECTION") Me.Grade = dataDb.getItem(0, "GRADE") Me.AdresseCtl = dataDb.getItem(0, "ADRESSE") Me.CPCtl = dataDb.getItem(0, "CODE_POSTAL") Me.VilleCtl = dataDb.getItem(0, "VILLE") Else dataDb.addNewRow() End If
J'ai vraiment cherché partout mais là je sèche Merci par avance pour votre aide...
Mail_Taf
Bonjour ChrisK,
Ne t'est t-il pas possible de tout gérer en Oledb ? Ce serait dans ce cas
nettement plus simple !
Fred.M.
"ChrisK" a écrit :
Bonjour,
Je cherche à accéder aux données d'une table access toute simple ,
mais voila j'ai l'erreur suivante :
"Une exception non gérée du type 'System.Data.OleDb.OleDbException'
s'est produite dans system.data.dll"
Alors que j'utilise la même fonction juste avant pour accéder aussi à
une table simple, et ça marche !!
Voici mon code
Namespace Base
Public Class Database
Private cnxBase As Base.cnxBase
Private oCommand As OleDbCommandBuilder
Private dataAdapter As OleDbDataAdapter
Public myDataSet As New DataSet
Private _nomTable As String
Private columnID As String
Public Sub New(ByVal iniCnxBase As Base.cnxBase)
cnxBase = iniCnxBase
'Possibilité de vérifier l'existence de la base
End Sub
Public Sub execSQL(ByVal sql As String, Optional ByVal table As
String = "table")
Me._nomTable = table
dataAdapter = New OleDbDataAdapter(sql,
cnxBase.oConnexion)
dataAdapter.AcceptChangesDuringFill = True
oCommand = New OleDb.OleDbCommandBuilder(dataAdapter)
myDataSet = New Data.DataSet
If _nomTable <> "" Then
dataAdapter.Fill(myDataSet, table) * endroit où
ressort l'erreur
Else
dataAdapter.Fill(myDataSet)
End If
End Sub
End Class
End Namespace
Lancement
Public Function getControleur() As Base.Database
'Définition d'un nouveau dataset
Dim db As Base.Database = New Base.Database(cnxBase)
Dim sql As String
sql = "SELECT " & champsControleur & " FROM
T_TITRE_CONTROLEUR"
db.execSQL(sql, "T_TITRE_CONTROLEUR")
Return db
End Function
où champsControleur est déclaré comme suit :
Private champsControleur As String = "DDTEFP, SECTION, GRADE,
ADRESSE, CODE_POSTAL, VILLE"
Ensuite j'utilise mon résultat comme cela :
'Enrichissement des informations
If dataDb.getNbRow > 0 Then
Me.DDTEFP = dataDb.getItem(0, "DDTEFP")
Me.Section = dataDb.getItem(0, "SECTION")
Me.Grade = dataDb.getItem(0, "GRADE")
Me.AdresseCtl = dataDb.getItem(0, "ADRESSE")
Me.CPCtl = dataDb.getItem(0, "CODE_POSTAL")
Me.VilleCtl = dataDb.getItem(0, "VILLE")
Else
dataDb.addNewRow()
End If
J'ai vraiment cherché partout mais là je sèche
Merci par avance pour votre aide...
Bonjour ChrisK, Ne t'est t-il pas possible de tout gérer en Oledb ? Ce serait dans ce cas nettement plus simple !
Fred.M.
"ChrisK" a écrit :
Bonjour,
Je cherche à accéder aux données d'une table access toute simple , mais voila j'ai l'erreur suivante :
"Une exception non gérée du type 'System.Data.OleDb.OleDbException' s'est produite dans system.data.dll"
Alors que j'utilise la même fonction juste avant pour accéder aussi à une table simple, et ça marche !!
Voici mon code
Namespace Base Public Class Database
Private cnxBase As Base.cnxBase Private oCommand As OleDbCommandBuilder Private dataAdapter As OleDbDataAdapter Public myDataSet As New DataSet Private _nomTable As String Private columnID As String
Public Sub New(ByVal iniCnxBase As Base.cnxBase) cnxBase = iniCnxBase
'Possibilité de vérifier l'existence de la base
End Sub
Public Sub execSQL(ByVal sql As String, Optional ByVal table As String = "table") Me._nomTable = table
dataAdapter = New OleDbDataAdapter(sql, cnxBase.oConnexion) dataAdapter.AcceptChangesDuringFill = True oCommand = New OleDb.OleDbCommandBuilder(dataAdapter) myDataSet = New Data.DataSet
If _nomTable <> "" Then dataAdapter.Fill(myDataSet, table) * endroit où ressort l'erreur Else dataAdapter.Fill(myDataSet) End If
End Sub End Class End Namespace
Lancement Public Function getControleur() As Base.Database 'Définition d'un nouveau dataset Dim db As Base.Database = New Base.Database(cnxBase) Dim sql As String
sql = "SELECT " & champsControleur & " FROM T_TITRE_CONTROLEUR" db.execSQL(sql, "T_TITRE_CONTROLEUR") Return db End Function où champsControleur est déclaré comme suit : Private champsControleur As String = "DDTEFP, SECTION, GRADE, ADRESSE, CODE_POSTAL, VILLE"
Ensuite j'utilise mon résultat comme cela : 'Enrichissement des informations If dataDb.getNbRow > 0 Then Me.DDTEFP = dataDb.getItem(0, "DDTEFP") Me.Section = dataDb.getItem(0, "SECTION") Me.Grade = dataDb.getItem(0, "GRADE") Me.AdresseCtl = dataDb.getItem(0, "ADRESSE") Me.CPCtl = dataDb.getItem(0, "CODE_POSTAL") Me.VilleCtl = dataDb.getItem(0, "VILLE") Else dataDb.addNewRow() End If
J'ai vraiment cherché partout mais là je sèche Merci par avance pour votre aide...