AccessアクセスMDBに接続して操作する方法
VB.NET
'Imports System.Data.OleDb
''' <summary>
''' SQLコネクション
''' </summary>
Private _con As OleDbConnection = Nothing
''' <summary>
''' トランザクション・オブジェクト
''' </summary>
''' <remarks></remarks>
Private _trn As OleDbTransaction = Nothing
''' <summary>
''' DB接続
''' </summary>
''' <param name="dsn">データソース名</param>
''' <param name="tot">タイムアウト値</param>
''' <remarks></remarks>
Public Sub Connect(Optional ByVal dsn As String = "db1.mdb", _
Optional ByVal tot As Integer = -1)
Try
If _con Is Nothing Then
_con = New OleDbConnection
End If
Dim cst As String = ""
cst = cst & "Provider=Microsoft.Jet.OLEDB.4.0"
cst = cst & ";Data Source=" & dsn
' データベースパスワードが設定されている場合
' cst = cst & ";Jet OLEDB:Database Password=xxxxx"
If tot > -1 Then
'_con.ConnectionTimeout = tot
cst = cst & ";Connect Timeout=" & tot.ToString
End If
_con.ConnectionString = cst
_con.Open()
Catch ex As Exception
Throw New Exception("Connect Error", ex)
End Try
End Sub
''' <summary>
''' DB切断
''' </summary>
Public Sub Disconnect()
Try
_con.Close()
Catch ex As Exception
Throw New Exception("Disconnect Error", ex)
End Try
End Sub
''' <summary>
''' SQLの実行
''' </summary>
''' <param name="sql">SQL文</param>
''' <param name="tot">タイムアウト値</param>
''' <returns></returns>
''' <remarks></remarks>
Public Function ExecuteSql(ByVal sql As String, _
Optional ByVal tot As Integer = -1) As DataTable
Dim dt As New DataTable
Try
Dim sqlCommand As New OleDbCommand(sql, _con, _trn)
If tot > -1 Then
sqlCommand.CommandTimeout = tot
End If
Dim adapter As New OleDbDataAdapter(sqlCommand)
adapter.Fill(dt)
adapter.Dispose()
sqlCommand.Dispose()
Catch ex As Exception
Throw New Exception("ExecuteSql Error", ex)
End Try
Return dt
End Function
''' <summary>
''' トランザクション開始
''' </summary>
''' <remarks></remarks>
Public Sub BeginTransaction()
Try
_trn = _con.BeginTransaction()
Catch ex As Exception
Throw New Exception("BeginTransaction Error", ex)
End Try
End Sub
''' <summary>
''' コミット
''' </summary>
''' <remarks></remarks>
Public Sub CommitTransaction()
Try
If _trn Is Nothing = False Then
_trn.Commit()
End If
Catch ex As Exception
Throw New Exception("CommitTransaction Error", ex)
Finally
_trn = Nothing
End Try
End Sub
''' <summary>
''' ロールバック
''' </summary>
''' <remarks></remarks>
Public Sub RollbackTransaction()
Try
If _trn Is Nothing = False Then
_trn.Rollback()
End If
Catch ex As Exception
Throw New Exception("RollbackTransaction Error", ex)
Finally
_trn = Nothing
End Try
End Sub
''' <summary>
''' 解除
''' </summary>
''' <remarks></remarks>
Protected Overrides Sub Finalize()
Disconnect()
MyBase.Finalize()
End Sub
基礎からわかる C#
C#
//using System; //using System.Collections.Generic; //using System.Text; //using System.Data; //using System.Data.OleDb;
/// <summary>
/// SQLコネクション
/// </summary>
private OleDbConnection _con = null;
/// <summary>
/// トランザクション・オブジェクト
/// </summary>
/// <remarks></remarks>
private OleDbTransaction _trn = null;
/// <summary>
/// DB接続
/// </summary>
/// <param name="dsn">データソース名</param>
/// <param name="tot">タイムアウト値</param>
/// <remarks></remarks>
public void Connect(String dsn, int tot)
{
try
{
if (_con == null)
{
_con = new OleDbConnection();
}
String cst = "";
cst = cst + "Provider=Microsoft.Jet.OLEDB.4.0";
cst = cst + ";Data Source=" + dsn;
// データベースパスワードが設定されている場合
// cst = cst + ";Jet OLEDB:Database Password=xxxxx";
if (tot > -1)
{
//_con.ConnectionTimeout = tot;
cst = cst + ";Connect Timeout=" + tot.ToString();
}
_con.ConnectionString = cst;
_con.Open();
}
catch (Exception ex)
{
throw new Exception("Connect Error", ex);
}
}
/// <summary>
/// DB切断
/// </summary>
public void Disconnect()
{
try
{
_con.Close();
}
catch (Exception ex)
{
throw new Exception("Disconnect Error", ex);
}
}
/// <summary>
/// SQLの実行
/// </summary>
/// <param name="sql">SQL文</param>
/// <param name="tot">タイムアウト値</param>
/// <returns></returns>
/// <remarks></remarks>
public DataTable ExecuteSql(String sql, int tot)
{
DataTable dt = new DataTable();
try
{
OleDbCommand sqlCommand = new OleDbCommand(sql, _con, _trn);
if (tot > -1)
{
sqlCommand.CommandTimeout = tot;
}
OleDbDataAdapter adapter = new OleDbDataAdapter(sqlCommand);
adapter.Fill(dt);
adapter.Dispose();
sqlCommand.Dispose();
}
catch (Exception ex)
{
throw new Exception("ExecuteSql Error", ex);
}
return dt;
}
/// <summary>
/// トランザクション開始
/// </summary>
/// <remarks></remarks>
public void BeginTransaction()
{
try
{
_trn = _con.BeginTransaction();
}
catch (Exception ex)
{
throw new Exception("BeginTransaction Error", ex);
}
}
/// <summary>
/// コミット
/// </summary>
/// <remarks></remarks>
public void CommitTransaction()
{
try
{
if (_trn != null)
{
_trn.Commit();
}
}
catch (Exception ex)
{
throw new Exception("CommitTransaction Error", ex);
}
finally
{
_trn = null;
}
}
/// <summary>
/// ロールバック
/// </summary>
/// <remarks></remarks>
public void RollbackTransaction()
{
try
{
if (_trn != null)
{
_trn.Rollback();
}
}
catch (Exception ex)
{
throw new Exception("RollbackTransaction Error", ex);
}
finally
{
_trn = null;
}
}
/// <summary>
/// 接続解除
/// </summary>
/// <remarks></remarks>
~AccessMdb()
{
Disconnect();
}
基礎からわかる C#![]()