在C#中,访问Access数据库(通常是Microsoft Access数据库,扩展名为.mdb或.accdb)进行增删查改操作,通常需要使用ADO.NET框架中的`OleDb`命名空间。下面是一个简单的示例,展示了如何使用`OleDb`进行数据库的增删查改操作。
首先,确保你的项目中已经添加了对`System.Data.OleDb`的引用。
### 1. 数据库连接字符串
string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\你的数据库路径\Database.mdb"; // 对于Access 2003及之前版本
// 或者对于Access 2007及更高版本
// string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\你的数据库路径\Database.accdb";
### 2. 插入(增)
string insertQuery = "INSERT INTO 表名 (列1, 列2) VALUES (@value1, @value2)";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
using (OleDbCommand command = new OleDbCommand(insertQuery, connection))
{
command.Parameters.AddWithValue("@value1", "值1");
command.Parameters.AddWithValue("@value2", "值2");
connection.Open();
int result = command.ExecuteNonQuery();
// result 会返回影响的行数
}
}
### 3. 删除
string deleteQuery = "DELETE FROM 表名 WHERE 条件列 = @conditionValue";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
using (OleDbCommand command = new OleDbCommand(deleteQuery, connection))
{
command.Parameters.AddWithValue("@conditionValue", "条件值");
connection.Open();
int result = command.ExecuteNonQuery();
// result 会返回影响的行数
}
}
### 4. 更新(改)
string updateQuery = "UPDATE 表名 SET 列1 = @newValue1 WHERE 条件列 = @conditionValue";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
using (OleDbCommand command = new OleDbCommand(updateQuery, connection))
{
command.Parameters.AddWithValue("@newValue1", "新值1");
command.Parameters.AddWithValue("@conditionValue", "条件值");
connection.Open();
int result = command.ExecuteNonQuery();
// result 会返回影响的行数
}
}
### 5. 查询(查)
string selectQuery = "SELECT 列1, 列2 FROM 表名 WHERE 条件列 = @conditionValue";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
using (OleDbCommand command = new OleDbCommand(selectQuery, connection))
{
command.Parameters.AddWithValue("@conditionValue", "条件值");
connection.Open();
using (OleDbDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
// 读取数据
Console.WriteLine(reader["列1"].ToString());
Console.WriteLine(reader["列2"].ToString());
}
}
}
}
注意:
- 替换示例中的`表名`、`列1`、`列2`、`值1`、`值2`、`条件列`和`条件值`等占位符为你数据库中的实际表名、列名和值。
- 访问数据库时,请确保数据库文件路径正确,并且你的应用程序有权限访问该数据库文件。
- 对于Access 2007及以上版本,数据库引擎的Provider是`Microsoft.ACE.OLEDB.12.0`,而不是`Microsoft.Jet.OLEDB.4.0`。