共用方式為


SqlDataReader.Read 方法

定義

SqlDataReader 推進到下一筆記錄。

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

傳回

如果有多個資料列則為 true;否則為 false

實作

例外狀況

SQL Server 於執行命令文字時傳回錯誤。

範例

下列範例會建立 SqlConnectionSqlCommand 、 和 SqlDataReader 。 此範例會讀取資料,並將其寫出主控台視窗。 然後程式碼會 SqlDataReader 關閉 。 會在 SqlConnection 程式碼區塊結尾 using 自動關閉 。

using Microsoft.Data.SqlClient;

class Program
{
    static void Main()
    {
        string str = "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=SSPI";
        ReadOrderData(str);
    }

    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 record)
    {
        Console.WriteLine(String.Format("{0}, {1}", record[0], record[1]));
    }

}

備註

的預設位置 SqlDataReader 是在第一筆記錄之前。 因此,您必須呼叫 Read 以開始存取任何資料。

每個關聯的一次只能開啟一個,而且任何嘗試開啟另一 SqlDataReader 個的 SqlConnection 嘗試都會失敗,直到第一個關閉為止。 同樣地,在使用 時 SqlDataReader ,相關聯的 SqlConnection 會忙於提供服務,直到您呼叫 Close 為止。

適用於