您的位置:首页 > 数据库

VB.NET ACCESS 数据库操作

2013-04-10 17:21 453 查看
Imports ADODB
Imports System.Text
Imports System.Data.OleDb
Imports System.IO

Public Class AccessorHelper

Private _connectionString As String = "provider=microsoft.ace.oledb.12.0;data source= " & Application.StartupPath & "\DispatchCar.db"

Public Function ExecuteNonQuery(ByVal cmd As String, ByVal cmdType As CommandType, Optional ByVal parameters() As OleDbParameter = Nothing) As Integer
Dim connection As OleDbConnection = Nothing
Dim transaction As OleDbTransaction = Nothing
Dim command As OleDbCommand = Nothing
Dim res As Integer = -1
Try
connection = New OleDbConnection(_connectionString)
command = New OleDbCommand(cmd, connection)
command.CommandType = cmdType
Me.AssignParameters(command, parameters)
connection.Open()
transaction = connection.BeginTransaction()
command.Transaction = transaction
res = command.ExecuteNonQuery()
transaction.Commit()
Catch ex As Exception
If Not (transaction Is Nothing) Then
transaction.Rollback()
End If
Throw New Exception(ex.Message, ex.InnerException)
Finally
If Not (connection Is Nothing) AndAlso (connection.State = ConnectionState.Open) Then connection.Close()
If Not (command Is Nothing) Then command.Dispose()
If Not (transaction Is Nothing) Then transaction.Dispose()
End Try
Return res
End Function

Public Function ExecuteReader(ByVal cmd As String, ByVal cmdType As CommandType, Optional ByVal parameters() As OleDbParameter = Nothing) As DataSet
Dim connection As OleDbConnection = Nothing
Dim command As OleDbCommand = Nothing
Dim dataSet As DataSet = New DataSet()
Try
connection = New OleDbConnection(_connectionString)
command = New OleDbCommand(cmd, connection)
command.CommandType = cmdType
Me.AssignParameters(command, parameters)
connection.Open()
Dim dataAdapter As New OleDbDataAdapter(command)
dataAdapter.Fill(dataSet)
dataAdapter.Dispose()
connection.Close()
Catch ex As Exception
Throw New Exception(ex.Message, ex.InnerException)
End Try
Return dataSet
End Function

#Region " Private Methods "

Private Sub AssignParameters(ByVal cmd As OleDbCommand, ByVal cmdParameters() As OleDbParameter)
If (cmdParameters Is Nothing) Then Exit Sub
For Each p As OleDbParameter In cmdParameters
cmd.Parameters.Add(p)
Next
End Sub

Private Sub AssignParameters(ByVal cmd As OleDbCommand, ByVal parameterValues() As Object)
If Not (cmd.Parameters.Count - 1 = parameterValues.Length) Then Throw New ApplicationException("Stored procedure's parameters and parameter values does not match.")
Dim i As Integer
For Each param As OleDbParameter In cmd.Parameters
If Not (param.Direction = ParameterDirection.Output) AndAlso Not (param.Direction = ParameterDirection.ReturnValue) Then
param.Value = parameterValues(i)
i += 1
End If
Next
End Sub

#End Region

End Class
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: