C#操作Access数据库指南

需积分: 4 9 下载量 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数据库。