C#连接Access数据库的两种实现方式详解
本文介绍了C#如何通过OleDb组件连接Access (.mdb) 数据库,涵盖从基础的环境准备到在WinForm应用中展示数据和在控制台程序中读取数据的完整流程。重点展示了`OleDbConnection`和`OleDbDataAdapter`的使用细节。
开发前准备
在进行C#与Access数据库交互之前,需要准备以下环境要素:
- 开发环境:Visual Studio 及 .NET Framework 支持。
- 依赖组件:必须引用
System.Data.OleDb命名空间以访问数据库相关类。 - 数据源位置:Access数据库文件(如
xxx.mdb)通常放置在程序的运行目录下(例如 Debug 或 Release 文件夹中),或者使用绝对路径明确指向文件位置。
场景一:WinForm窗体显示数据库表内容
本部分演示如何在 Windows 窗体应用程序中,点击按钮后利用 DataSet 和 DataGridView 控件将 Access 表的数据显示在界面上。
第1步:界面设计
打开 WinForm 项目,在界面上拖入一个 Button 控件用于触发操作,并添加一个 DataGridView 控件用于后续的数据展示。
第2步:引入命名空间
双击窗体进入代码编辑页,在顶部引入数据库操作所需的命名空间:
using System.Data.OleDb;
第3步:编写按钮点击事件代码
双击“按钮”控件进入事件处理函数,按照以下逻辑编写代码建立连接、填充数据并绑定控件:
OleDbConnection strConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "员工信息.mdb" + ";Persist Security Info=False");
// 注意:数据文件需存在于DEBUG目录下
OleDbDataAdapter myda = new OleDbDataAdapter("select * from 雇员", strConnection);
DataSet myds = new DataSet();
myda.Fill(myds, "联系人ID"); // 填充数据集,指定生成的DataTable名称
dataGridView1.DataSource = myds.Tables["联系人ID"];
执行上述代码后,点击按钮即可看到 dataGridView1 中显示了数据库中“雇员”表的数据。
场景二:控制台应用读取并输出数据
除了图形界面,有时我们需要在控制台程序中直接获取并处理数据流。这里演示如何使用 Command 和 Reader 对象逐行读取 Access 中的数据。
第1步:初始化连接与命令对象
在控制台的 Main 方法中,定义连接字符串并尝试建立连接。建议使用 `try-finally` 块确保资源关闭。
第2步:执行查询并遍历结果
创建 SQL 查询语句,通过 ExecuteReader() 获取读取器,并使用循环读取每一行的指定列数据:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
namespace ConsoleApplication19
{
class Program
{
static void Main(string[] args)
{
OleDbConnection mycon = null;
OleDbDataReader myReader = null;
try
{
string strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db4.mdb;";
mycon = new OleDbConnection(strcon);
mycon.Open();
string sql = "select * from 雇员 ";
OleDbCommand mycom = new OleDbCommand(sql, mycon);
myReader = mycom.ExecuteReader();
while (myReader.Read())
{
// 按索引顺序获取列值,请根据实际数据库字段调整
Console.WriteLine(
myReader.GetString(0) + " " +
myReader.GetDouble(1) + " " +
myReader.GetString(2) + " " +
myReader.GetString(3) + " " +
myReader.GetString(4)
);
}
}
finally
{
if (myReader != null) myReader.Close();
if (mycon != null) mycon.Close();
}
}
}
}
运行该项目,控制台窗口将会依次打印出表中每一行对应列的内容。
关键注意事项与排错
在实际操作中,若遇到连接失败,请重点检查以下几点:
- 提供者版本差异:上述代码使用的是
Microsoft.Jet.OLEDB.4.0,这仅适用于 32位环境的旧版 Access 文件(.mdb)。如果涉及 64位系统或 .accdb 格式,需要更换为正确的 Provider(如 ACE OLEDB)或修改项目的平台目标。 - 路径问题:确保代码中引用的
Data Source文件名准确无误,且该文件确实存在于程序运行的当前目录中。 - 字段索引匹配:在控制台读取部分,
GetString(0)、GetDouble(1)等索引号必须与数据库表中实际的物理列顺序一致,否则可能导致类型转换异常或读取错位。
以上就是C#连接Access数据库实现数据的详细教程,更多关于C#数据库操作的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













