OVH Cloud OVH Cloud

[DotNet] Acces aux données d'une table , I need Help

1 réponse
Avatar
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...

Mail_Taf

1 réponse

Avatar
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