C#的数据库操作里,Access 算是上手比较快的一种。是你做些本地小工具、或者教学项目,轻量、省事还挺顺。用起来也不复杂,核心是搞清楚连接字符串,还有几个常用类怎么配合着用。比如,OleDbConnection负责连库,OleDbCommand负责执行 SQL,搭起来一气呵成。

在项目里,你先引用好System.DataSystem.Data.OleDb这俩命名空间,就能用OleDbConnection去连数据库了。连 Access 用的比较老的引擎是Microsoft.Jet.OLEDB.4.0,新版可以换成Microsoft.ACE.OLEDB.12.0。连接字符串像下面这样写:

string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\Data\\worker.asp;";

嗯,这里的worker.asp其实是个.mdb文件,改名是为了安全一点。不然数据库名暴露出去太直接。你就可以像下面这样打开连接:

OleDbConnection connection = new OleDbConnection(connectionString);
connection.Open();

查询也直接,构建 SQL 语句,套上OleDbCommand去跑。比如你想查昨天以来新增的书籍数目:

string sql = "SELECT COUNT(*) FROM book WHERE Format(hfsj, 'yyyyMMdd') >= '" + DateTime.Now.AddDays(-1).ToString("yyyyMMdd") + "'";
OleDbCommand command = new OleDbCommand(sql, connection);

ExecuteReader()去跑它,读出来的结果可以这样:

OleDbDataReader reader = command.ExecuteReader();
if (reader.Read()) {
  int count = Convert.ToInt32(reader[0].ToString());
}

记得关掉资源,省得占用连接:

reader.Close();
connection.Close();

如果你代码里经常查库,推荐加上using块自动释放连接;安全点的话,也可以用参数化查询防 SQL 注入。连不上数据库时,优先检查路径、程序版本和文件权限这些,往往问题都卡在这。