C#操作Access数据库指南
需积分: 4 87 浏览量
更新于2024-09-15
收藏 17KB DOCX 举报
"C# 访问 Access 数据操作的示例代码"
在C#编程中,Access数据库是一个常用的数据存储解决方案,特别是在小型应用或桌面应用程序中。以下内容将详细讲解如何使用C#进行Access数据库的创建、连接以及读写操作。
首先,我们来看如何创建一个Access (.mdb) 数据库。创建mdb库的代码如下:
```csharp
// 创建mdb
public static bool CreateMDBDataBase(string mdbPath)
{
try
{
ADOX.CatalogClass cat = new ADOX.CatalogClass();
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=" + mdbPath + ";");
cat = null;
return true;
}
catch
{
return false;
}
}
```
这个方法使用了ADOX(ActiveX Data Objects eXtension)库,通过`CatalogClass`对象的`Create`方法创建数据库。参数`mdbPath`是数据库文件的完整路径,例如:`E:\\AutoTestSystem\\AutoTestSystem\\info.mdb`。这里使用了Jet OLEDB 4.0提供程序来连接Access数据库。
接下来,创建具体的表。以下代码展示了如何根据ArrayList `mdbHead` 中的列名创建一个新表:
```csharp
// 新建mdb的表
public static bool CreateMDBTable(string mdbPath, string tableName, ArrayList mdbHead)
{
try
{
ADOX.CatalogClass cat = new ADOX.CatalogClass();
string sAccessConnection = @"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=" + mdbPath;
ADODB.Connection cn = new ADODB.Connection();
cn.Open(sAccessConnection, null, null, -1);
cat.ActiveConnection = cn;
// 新建一个表
ADOX.TableClass tbl = new ADOX.TableClass();
tbl.ParentCatalog = cat;
tbl.Name = tableName;
int size = mdbHead.Count;
for (int i = 0; i < size; i++)
{
// 增加一个文本字段
ADOX.ColumnClass col2 = new ADOX.ColumnClass();
col2.ParentCatalog = cat;
col2.Name = mdbHead[i].ToString(); // 列的名称
col2.Properties["JetOLEDB:AllowZeroLength"].Value = true; // 允许空字符串
col2.Type = ADOX.ObjectTypeEnum.adVarWChar; // 字符串类型
col2.Size = 50; // 字段长度
tbl.Columns.Append(col2.Name, col2.Type, col2.Size); // 添加到表中
}
cat.Tables.Append(tbl.Name, tbl); // 将表添加到目录中
tbl = null;
cn.Close();
cn = null;
cat = null;
return true;
}
catch
{
return false;
}
}
```
这段代码首先打开与数据库的连接,然后创建一个`TableClass`对象,并设置其名称为`tableName`。接着,遍历ArrayList `mdbHead`,为每个列创建一个`ColumnClass`对象,设置其属性如名称、类型和长度。最后,将列添加到表中,并将表添加到目录。
至于读写操作,可以使用ADO.NET中的`OleDbConnection`、`OleDbCommand`、`OleDbDataReader`等类。例如,插入数据:
```csharp
// 插入数据
public static bool InsertData(string mdbPath, string tableName, Dictionary<string, object> data)
{
try
{
string sql = "INSERT INTO " + tableName + " VALUES (?, ?, ...)";
OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=" + mdbPath);
conn.Open();
OleDbCommand cmd = new OleDbCommand(sql, conn);
foreach (var kvp in data)
{
cmd.Parameters.AddWithValue("?", kvp.Value);
}
cmd.ExecuteNonQuery();
conn.Close();
cmd = null;
conn = null;
return true;
}
catch
{
return false;
}
}
```
在这个例子中,我们构建了一个SQL插入语句,然后使用`OleDbCommand`的`Parameters.AddWithValue`方法添加参数值。执行`ExecuteNonQuery`来完成插入操作。
同样,读取数据可以使用`SELECT`语句和`OleDbDataReader`来实现。这些基本操作构成了C#中对Access数据库的基本操作框架,允许开发者创建、修改和查询Access数据库。
292 浏览量
2022-09-19 上传
250 浏览量
2015-02-16 上传
2009-04-04 上传
2012-07-03 上传
2012-12-21 上传
2012-12-26 上传
xiaohe200
- 粉丝: 0
- 资源: 4
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器