一个C#的Access数据库的连接类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MyGz530AccessHelp { using System.Data; using System.Data.OleDb; public class Gz530AccessHelp { // 连接数据源 private OleDbConnection conn = null; /// <summary> /// 数据源 /// </summary> /// <param name="conStr">数据源连接字符串</param> public OleDbConnection DataBase(string conStr) { conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ conStr +";Jet OLEDB:System Database=system.mdw;"); this.Open(); return conn; } /// <summary> /// 根据SQL查询返回DataSet对象,如果没有查询到则返回NULL /// </summary> /// <param name="sql">查询语句</param> /// <returns>DataSet</returns> public DataSet GetDataSet(string sql) { DataSet ds = new DataSet(); try { OleDbCommand cmd = new OleDbCommand(sql, conn); cmd.CommandTimeout = 20; System.Data.OleDb.OleDbDataAdapter adapter = new OleDbDataAdapter(cmd); adapter.Fill(ds, "tempTable"); } catch (Exception e) { ds = null; } return ds; } /// <summary> /// 根据SQL查询返回DataSet对象,如果没有查询到则返回NULL /// </summary> /// <param name="sql">查询语句</param> /// <param name="sRecord">开始记录数</param> /// <param name="mRecord">最大记录数</param> /// <returns>DataSet</returns> public DataSet GetDataSet(string sql, int sRecord, int mRecord) { DataSet ds = new DataSet(); try { OleDbCommand cmd = new OleDbCommand(sql, conn); cmd.CommandTimeout = 20; System.Data.OleDb.OleDbDataAdapter adapter = new OleDbDataAdapter(cmd); adapter.Fill(ds, sRecord, mRecord, "tempTable"); } catch (Exception e) { ds = null; } return ds; } /// <summary> /// 对数据库的增,删,改的操作 /// </summary> /// <param name="sql">SQL语句</param> /// <returns>是否成功</returns> public bool ExecuteDataBase(string sql) { bool succeed = false; int cnt = 0; try { OleDbCommand cmd = new OleDbCommand(sql, conn); cmd.CommandTimeout = 20; if (this.Open()) cnt = cmd.ExecuteNonQuery(); } catch (Exception e) { e.ToString(); } finally { if (cnt > 0) { succeed = true; } } return succeed; } /// <summary> /// 获得该SQL查询返回的第一行第一列的值,如果没有查询到则返回NULL /// </summary> /// <param name="sql">查询语句</param> /// <returns>返回的第一行第一列的值</returns> public string GetScalar(string sql) { string str = null; try { OleDbCommand cmd = new OleDbCommand(sql, conn); if (this.Open()) str = cmd.ExecuteScalar().ToString(); } catch (Exception e) { e.ToString(); } return str; } /// <summary> /// 获得该SQL查询返回DataTable,如果没有查询到则返回NULL /// </summary> /// <param name="sql">查询语句</param> /// <returns></returns> public DataTable GetDataTable(string sql) { DataTable tb = null; DataSet ds = this.GetDataSet(sql); if (ds != null) { tb = ds.Tables["tempTable"]; } return tb; } /// <summary> /// 打开数据库连接. /// </summary> private bool Open() { bool succeed = false; try { if (conn.State == System.Data.ConnectionState.Closed) { conn.Open(); succeed = true; } else if (conn.State == System.Data.ConnectionState.Broken) { conn.Close(); conn.Open(); succeed = true; } else if (conn.State == System.Data.ConnectionState.Open) { succeed = true; } } catch (Exception e) { e.ToString(); } return succeed; } /// <summary> /// 关闭数据库连接 /// </summary> public void Close() { if (conn != null) { conn.Close(); } } /// <summary> /// 释放数据库连接资源 /// </summary> public void Dispose() { if (conn != null) { conn.Dispose(); conn = null; } } } } 和同僚分享