Io per OleDb uso questa classe che feci tempo fa:
codice:
Public Class OleDBTools
Private StringaConnessione As String
Public Property StrConn() As String
Get
Return StringaConnessione
End Get
Set(ByVal Value As String)
StringaConnessione = Value
End Set
End Property
Private StringaSQL As String
Public Property ComandoSQL() As String
Get
Return StringaSQL
End Get
Set(ByVal Value As String)
StringaSQL = Value
End Set
End Property
Private internal_OLEDBCONN As OleDbConnection
Private internal_OLEDBCOMMAND As OleDbCommand
Private internal_OLEDBREADER As OleDbDataReader
Private internal_OLEDBADAPTER As OleDbDataAdapter
Private internal_DATASET As DataSet
Private Sub ConnettiOleDB()
Try
internal_OLEDBCONN = New OleDbConnection(StringaConnessione)
internal_OLEDBCONN.Open()
Catch ex As OleDbException
internal_EXCEPTION = ex.Message
internal_OLEDBCONN.Close()
Me.ComandoSQL = ""
Me.StrConn = ""
Throw ex
End Try
End Sub
' Restituisce un Dataset disconnesso --con OLEDB-- da associare ad un controllo
Public Function EstraiOleDbDataSet(ByVal strNomeDataTable As String) As DataSet
ConnettiOleDB()
internal_DATASET = New DataSet
internal_OLEDBADAPTER = New OleDbDataAdapter(StringaSQL, internal_OLEDBCONN)
Try
internal_OLEDBADAPTER.Fill(internal_DATASET, strNomeDataTable)
Return internal_DATASET
Catch ex As OleDBException
Throw ex
Return Nothing
Finally
internal_OLEDBCONN.Close()
End Try
End Function
Public Function EstraiOleDbDataReader() As OleDbDataReader
ConnettiOleDB()
internal_OLEDBCOMMAND = New OleDbCommand(StringaSQL, internal_OLEDBCONN)
Try
internal_OleDbREADER = internal_OLEDBCOMMAND.ExecuteReader()
Return internal_OleDbREADER
Catch ex As OleDbException
Throw ex
internal_OLEDBCONN.Close()
Return Nothing
Finally
internal_OLEDBCOMMAND.Dispose()
End Try
End Function
Private Sub DisconnettiOleDB()
Try
If internal_OLEDBCONN.State = ConnectionState.Open Or internal_OLEDBCONN.State = ConnectionState.Connecting Or internal_OLEDBCONN.State = ConnectionState.Executing Or internal_OLEDBCONN.State = ConnectionState.Fetching Then
internal_OLEDBCONN.Close()
End If
Catch ex As OleDbException
Throw ex
End Try
End Sub
End Class
Uso:
codice:
Dim db As New OleDBTools
db.StrConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=etc etc"
db.ComandoSQL = "SELECT * FROM TBDATI"
Dim DS As New DataSet
DS = db.EstraiOleDbDataSet("NomeDataTable")