C#中如何使用SqlDataReader读取数据?示例代码是什么?

来源:这里教程网 时间:2026-02-21 17:26:17 作者:

在C#中,SqlDataReader 用于从数据库高效地读取只进、只读的数据流。它适用于需要快速访问大量数据的场景,比如逐行读取查询结果。

基本使用步骤

使用 SqlDataReader 的典型流程包括:建立连接、执行命令、读取数据、关闭资源。注意必须保持连接打开直到读取完成。

使用 SqlConnection 建立数据库连接 通过 SqlCommand 执行 SELECT 查询 调用 ExecuteReader() 获取 SqlDataReader 对象 用 Read() 方法逐行读取数据 使用索引或列名获取字段值 正确释放资源(推荐使用 using 语句)

完整示例代码

以下是一个使用 SqlDataReader 读取用户表数据的示例:

using System;
using System.Data;
using Microsoft.Data.SqlClient; // .NET 6+ 使用 Microsoft.Data.SqlClient
class Program
{
    static void Main()
    {
        string connectionString = "Server=localhost;Database=TestDB;User Id=sa;Password=your_password;";
        string query = "SELECT Id, Name, Email FROM Users";
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            SqlCommand command = new SqlCommand(query, connection);
            try
            {
                connection.Open();
                SqlDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    int id = reader.GetInt32("Id");
                    string name = reader["Name"].ToString();
                    string email = reader["Email"] as string;
                    Console.WriteLine($"ID: {id}, Name: {name}, Email: {email}");
                }
                reader.Close(); // 关闭读取器
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }
        } // 连接自动关闭
    }
}

注意事项与最佳实践

使用 SqlDataReader 时应注意以下几点以避免常见问题:

确保连接字符串正确,并且数据库服务正在运行 Always use using 语句确保连接和读取器被正确释放 调用 Read() 方法前进到下一行,返回 false 表示已到末尾 可通过列名或序号访问数据,如 reader["Name"] 或 reader[1] 根据数据类型选择合适的 Get 方法(GetInt32, GetString, GetDateTime 等)更高效且安全 不要在关闭连接后尝试读取数据

基本上就这些。SqlDataReader 轻量高效,适合读取大量数据的场景,但需注意及时释放资源。

相关推荐