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

c#数据库查询 实例

C#数据库查询实例展示了如何在C#中进行数据库操作,包括连接数据库、执行SQL查询语句以及处理查询结果等步骤。

在C#中进行数据库查询是一项常见的任务,通常使用ADO.NET或Entity Framework等技术,下面将通过一个实例来展示如何在C#中进行数据库查询。

实例背景

假设有一个简单的数据库,其中包含一个名为“Students”的表,该表有以下字段:

字段名 数据类型 描述
StudentID int 学生ID
Name nvarchar 学生姓名
Age int 学生年龄
Grade nvarchar 学生年级

使用ADO.NET进行数据库查询

1、引入命名空间:需要引入必要的命名空间。

using System;
using System.Data;
using System.Data.SqlClient;

2、建立数据库连接:创建一个SqlConnection对象,用于连接到数据库。

string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    // 后续代码...
}

3、创建并执行SQL命令:创建一个SqlCommand对象,并执行SQL查询。

c#数据库查询 实例

string query = "SELECT * FROM Students WHERE Age > @Age";
using (SqlCommand command = new SqlCommand(query, connection))
{
    command.Parameters.AddWithValue("@Age", 18); // 防止SQL注入
    connection.Open();
    SqlDataReader reader = command.ExecuteReader();
    while (reader.Read())
    {
        Console.WriteLine($"Student ID: {reader["StudentID"]}, Name: {reader["Name"]}, Age: {reader["Age"]}, Grade: {reader["Grade"]}");
    }
    reader.Close();
}

使用Entity Framework进行数据库查询

1、安装Entity Framework:确保已安装Entity Framework。

Install-Package EntityFramework

2、定义模型类:根据数据库表结构定义一个模型类。

public class Student
{
    public int StudentID { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
    public string Grade { get; set; }
}

3、配置DbContext:创建一个继承自DbContext的类,用于与数据库交互。

c#数据库查询 实例

public class SchoolContext : DbContext
{
    public DbSet<Student> Students { get; set; }
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer("Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;");
    }
}

4、执行查询:使用DbContext执行查询。

using (var context = new SchoolContext())
{
    var students = context.Students.Where(s => s.Age > 18).ToList();
    foreach (var student in students)
    {
        Console.WriteLine($"Student ID: {student.StudentID}, Name: {student.Name}, Age: {student.Age}, Grade: {student.Grade}");
    }
}

展示了两种在C#中进行数据库查询的方法:使用ADO.NET和使用Entity Framework,ADO.NET提供了更底层的控制,适合需要精细控制数据库操作的场景;而Entity Framework则提供了更高级的抽象,使得数据库操作更加简洁和直观,选择哪种方法取决于具体的需求和项目规模。

相关问答FAQs

:ADO.NET和Entity Framework有什么区别?

:ADO.NET是Microsoft提供的一组用于访问数据库的类库,它提供了底层的数据库操作功能,适合需要精细控制数据库操作的场景,而Entity Framework则是基于ADO.NET之上的一个ORM(对象关系映射)框架,它提供了更高级的抽象层,使得开发者可以通过操作对象的方式来操作数据库,提高了开发效率和代码可读性,ADO.NET更接近于“手动驾驶”,而Entity Framework则像是“自动驾驶”。

c#数据库查询 实例

:为什么推荐使用参数化查询而不是直接拼接字符串来构建SQL命令?

:推荐使用参数化查询而不是直接拼接字符串来构建SQL命令,主要是为了防止SQL注入攻击,当使用参数化查询时,SQL引擎会将参数值作为独立的数据进行处理,而不是将其直接拼接到SQL命令字符串中,这样,即使参数值中含有反面的SQL代码,也不会被执行,从而大大提高了数据库的安全性,参数化查询还可以提高查询性能,因为数据库可以重用预编译的SQL语句。