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(); } } }