当前位置:首页 > 行业动态 > 正文

如何在C中建立Access数据库连接?

在C#中建立Access数据库连接,首先需要添加对System.Data.OleDb命名空间的引用,然后使用OleDb Connection对象来创建和管理数据库 连接

在C#中建立Access数据库涉及几个关键步骤,包括创建数据库、设计表结构、插入数据以及查询和操作数据,以下是详细的步骤和示例代码:

创建Access数据库

我们需要创建一个Access数据库文件(.mdb),这可以通过编程方式实现,也可以手动创建,为了简化,我们假设已经存在一个名为MyDatabase.mdb的数据库文件。

设计表结构

我们需要设计数据库中的表结构,我们可以创建一个名为Employees的表,包含以下字段:

ID (自动编号)

FirstName (文本)

LastName (文本)

BirthDate (日期/时间)

如何在C中建立Access数据库连接?

HireDate (日期/时间)

Salary (货币)

可以使用SQL语句来创建这个表:

CREATE TABLE Employees (
    ID AUTOINCREMENT PRIMARY KEY,
    FirstName TEXT,
    LastName TEXT,
    BirthDate DATE,
    HireDate DATE,
    Salary CURRENCY
);

在C#中连接Access数据库

为了在C#中连接Access数据库,我们需要使用System.Data.OleDb命名空间,添加必要的引用:

using System;
using System.Data;
using System.Data.OleDb;

编写代码连接到数据库:

如何在C中建立Access数据库连接?

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyDatabase.mdb;";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
    connection.Open();
    // 在这里执行数据库操作
}

插入数据

一旦连接上数据库,我们就可以插入数据,向Employees表中插入一条记录:

string insertQuery = "INSERT INTO Employees (FirstName, LastName, BirthDate, HireDate, Salary) VALUES (@FirstName, @LastName, @BirthDate, @HireDate, @Salary)";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
    connection.Open();
    using (OleDbCommand command = new OleDbCommand(insertQuery, connection))
    {
        command.Parameters.AddWithValue("@FirstName", "John");
        command.Parameters.AddWithValue("@LastName", "Doe");
        command.Parameters.AddWithValue("@BirthDate", new DateTime(1980, 5, 15));
        command.Parameters.AddWithValue("@HireDate", new DateTime(2005, 6, 1));
        command.Parameters.AddWithValue("@Salary", 50000);
        command.ExecuteNonQuery();
    }
}

查询数据

查询数据也是常见的操作,查询所有员工的详细信息:

string selectQuery = "SELECT * FROM Employees";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
    connection.Open();
    using (OleDbCommand command = new OleDbCommand(selectQuery, connection))
    {
        using (OleDbDataReader reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                Console.WriteLine($"ID: {reader["ID"]}, FirstName: {reader["FirstName"]}, LastName: {reader["LastName"]}, BirthDate: {reader["BirthDate"]}, HireDate: {reader["HireDate"]}, Salary: {reader["Salary"]}");
            }
        }
    }
}

更新数据

更新数据也很简单,将ID为1的员工的工资更新为55000:

string updateQuery = "UPDATE Employees SET Salary = @Salary WHERE ID = @ID";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
    connection.Open();
    using (OleDbCommand command = new OleDbCommand(updateQuery, connection))
    {
        command.Parameters.AddWithValue("@Salary", 55000);
        command.Parameters.AddWithValue("@ID", 1);
        command.ExecuteNonQuery();
    }
}

删除数据

删除数据,删除ID为1的员工记录:

string deleteQuery = "DELETE FROM Employees WHERE ID = @ID";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
    connection.Open();
    using (OleDbCommand command = new OleDbCommand(deleteQuery, connection))
    {
        command.Parameters.AddWithValue("@ID", 1);
        command.ExecuteNonQuery();
    }
}

相关问答FAQs

**Q1: 如何在C#中处理Access数据库的连接字符串?

如何在C中建立Access数据库连接?

A1: 在C#中处理Access数据库的连接字符串时,需要指定提供程序和数据源,对于较旧版本的Access数据库(如.mdb文件),可以使用Microsoft.Jet.OLEDB.4.0提供程序,连接字符串的格式如下:

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyDatabase.mdb;";

对于较新版本的Access数据库(如.accdb文件),应使用Microsoft.ACE.OLEDB.12.0提供程序:

string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=MyDatabase.accdb;";

**Q2: 如何在C#中防止SQL注入攻击?

A2: 为了防止SQL注入攻击,应始终使用参数化查询而不是直接在SQL语句中拼接用户输入,参数化查询可以确保用户输入被正确转义,从而避免SQL注入风险。

string insertQuery = "INSERT INTO Employees (FirstName, LastName, BirthDate, HireDate, Salary) VALUES (@FirstName, @LastName, @BirthDate, @HireDate, @Salary)";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
    connection.Open();
    using (OleDbCommand command = new OleDbCommand(insertQuery, connection))
    {
        command.Parameters.AddWithValue("@FirstName", "John");
        command.Parameters.AddWithValue("@LastName", "Doe");
        command.Parameters.AddWithValue("@BirthDate", new DateTime(1980, 5, 15));
        command.Parameters.AddWithValue("@HireDate", new DateTime(2005, 6, 1));
        command.Parameters.AddWithValue("@Salary", 50000);
        command.ExecuteNonQuery();
    }
}

小编有话说

我们详细介绍了如何在C#中建立并操作Access数据库,通过这些步骤,你可以创建数据库、设计表结构、插入、查询、更新和删除数据,记得始终使用参数化查询来防止SQL注入攻击,并确保你的连接字符串正确无误,希望这篇文章对你有所帮助!