SqlDataReader.Read 方法

定义

前进 SqlDataReader 到下一条记录。

public:
 override bool Read();
public:
 virtual bool Read();
public override bool Read();
public bool Read();
override this.Read : unit -> bool
abstract member Read : unit -> bool
override this.Read : unit -> bool
Public Overrides Function Read () As Boolean
Public Function Read () As Boolean

返回

true 如果有更多行,则为否则 false

实现

例外

执行命令文本时SQL Server返回错误。

示例

以下示例创建一个 SqlConnection、一个 SqlCommand和一个 SqlDataReader。 该示例读取数据,并将其写出到控制台窗口。 然后,代码关闭 .SqlDataReader 代码 SqlConnection 块末尾 using 自动关闭。

private static void ReadOrderData(string connectionString)
{
    string queryString =
        "SELECT OrderID, CustomerID FROM dbo.Orders;";

    using (SqlConnection connection =
               new SqlConnection(connectionString))
    {
        SqlCommand command =
            new SqlCommand(queryString, connection);
        connection.Open();

        SqlDataReader reader = command.ExecuteReader();

        // Call Read before accessing data.
        while (reader.Read())
        {
            ReadSingleRow((IDataRecord)reader);
        }

        // Call Close when done reading.
        reader.Close();
    }
}

private static void ReadSingleRow(IDataRecord dataRecord)
{
    Console.WriteLine(String.Format("{0}, {1}", dataRecord[0], dataRecord[1]));
}
Private Sub ReadOrderData(ByVal connectionString As String)
    Dim queryString As String = _
        "SELECT OrderID, CustomerID FROM dbo.Orders;"

    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        connection.Open()

        Dim reader As SqlDataReader = command.ExecuteReader()

        ' Call Read before accessing data.
        While reader.Read()
            ReadSingleRow(CType(reader, IDataRecord))
        End While

        ' Call Close when done reading.
        reader.Close()
    End Using
End Sub

Private Sub ReadSingleRow(ByVal record As IDataRecord)
   Console.WriteLine(String.Format("{0}, {1}", record(0), record(1)))
End Sub

注解

默认位置 SqlDataReader 位于第一条记录之前。 因此,必须调用 Read 以开始访问任何数据。

每次只能打开一个关联SqlDataReader,任何打开另一SqlConnection个尝试都将失败,直到第一次关闭。 同样,在使用时 SqlDataReader ,关联的用户 SqlConnection 正忙于提供服务,直到调用 Close

适用于

另请参阅