雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

C# 连接数据库技术指南

2024-06-29 80

在C#编程中,与数据库的交互是一项基本且重要的任务。无论是在桌面应用、Web应用还是企业级系统中,都需要与各种类型的数据库进行通信,包括SQL Server、MySQL、SQLite、Oracle等。本文将概述如何在C#中连接和操作数据库的基本方法,并提供一些实用技巧。

1. ADO.NET:微软推荐的数据库访问技术

ADO.NET是Microsoft .NET框架中用于访问数据库的核心组件,它提供了与不同数据库交互的标准API。

例如,连接到SQL Server数据库:

using System.Data.SqlClient;

// 创建数据库连接字符串
string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;";

using (SqlConnection connection = new SqlConnection(connectionString))
{
    try
    {
        // 打开数据库连接
        connection.Open();

        // 创建SqlCommand对象并执行SQL语句
        SqlCommand command = new SqlCommand("SELECT * FROM Customers", connection);
        SqlDataReader reader = command.ExecuteReader();

        while (reader.Read())
        {
            Console.WriteLine("{0}, {1}", reader["FirstName"], reader["LastName"]);
        }

        reader.Close();
    }
    catch (Exception ex)
    {
        Console.WriteLine("Error: " + ex.Message);
    }
}


2. ORM框架:Entity Framework与Dapper

对于复杂的应用场景,ORM(对象关系映射)框架能极大提高开发效率,降低代码复杂度。

Entity Framework: 是微软提供的ORM框架,允许开发者以面向对象的方式来操作数据库

using (var context = new MyDbContext())
{
    var customers = context.Customers.ToList();
    foreach (var customer in customers)
    {
        Console.WriteLine($"{customer.FirstName} {customer.LastName}");
    }
}


Dapper: 是轻量级的ORM工具,具有极高的性能,特别适合快速开发和微服务架构。

using (var conn = new SqlConnection(connectionString))
{
    conn.Open();
    var customers = conn.Query<Customer>("SELECT * FROM Customers").ToList();
    foreach (var customer in customers)
    {
        Console.WriteLine($"{customer.FirstName} {customer.LastName}");
    }
}


3. 数据库连接池优化

为了提高数据库连接的性能,通常会利用数据库连接池技术。在C#中,无论是ADO.NET还是EF Core都内置了数据库连接池的支持。只需简单配置即可启用:

using (var connection = new SqlConnection(connectionString))
{
    // 设置复用连接
    connection.Pooling = true;
    
    // 其他数据库操作...
}


4. SQL注入防护

在拼接SQL语句时,务必注意SQL注入攻击的风险。可采用参数化查询的方式防止SQL注入:

string firstName = "John";
string lastName = "Doe";
SqlCommand command = new SqlCommand("SELECT * FROM Customers WHERE FirstName = @firstName AND LastName = @lastName", connection);
command.Parameters.AddWithValue("@firstName", firstName);
command.Parameters.AddWithValue("@lastName", lastName);


C#连接数据库不仅可以通过原生的ADO.NET实现,也可以借助于更高级的ORM框架,结合良好的编程实践和安全意识,能够高效安全地完成数据库操作。

更新于:4个月前
赞一波!5

文章评论

评论问答