using System;
using System.Data;
using System.Data.OleDb;
using Bentley.Internal.MstnPlatformNET;
namespace GeologyToolkit
{
internal class MdbHelper
{
///
/// 构建函数
///
/// MDB文件(含完整路徑)
public MdbHelper(string fileName)
{
this.fileName = fileName;
connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName;
}
private readonly string connectionString;
private readonly string fileName;
private OleDbConnection odcConnection;
///
/// 断开连接(关闭据库文件)
///
public void Close()
{
odcConnection.Close();
}
///
/// 根据sql命令返回一个DataSet
///
/// sql命令
/// 以DataTable形式返回数据
public DataSet GetDataSet(string sql)
{
DataSet ds = new DataSet();
try
{
OleDbDataAdapter adapter = new OleDbDataAdapter(sql, odcConnection);
adapter.Fill(ds);
}
catch (Exception)
{
throw new Exception("sql语句: " + sql + " 执行失败!");
}
return ds;
}
//根据表名返回一个DataSet
public DataSet GetDataSetByTableName(string tableName)
{
string sql = "select * from " + tableName;
return GetDataSet(sql);
}
//查询所有的表名
public DataTable GetTables()
{
DataTable dt = odcConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
return dt;
}
public void Open12()
{
//string connStr = @"Driver={Microsoft Access Driver (*.mdb)};DBQ=" + fileName;
string connectionString = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={fileName};Persist Security Info=False;";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
connection.Open();
// Your code to interact with the database
}
}
///
/// 建立连接(打开数据库文件)
///
public void Open()
{
// 建立连接
odcConnection = new OleDbConnection(connectionString);
// 打开连接
odcConnection.Open();
}
}
}