共用方式為


SqlDataReader.Close 方法

定義

關閉 SqlDataReader 物件。

public:
 override void Close();
public override void Close ();
override this.Close : unit -> unit
Public Overrides Sub Close ()

實作

範例

下列範例會建立 SqlConnection 、、 SqlCommandSqlDataReader 。 此範例會讀取資料,並將它寫出主控台視窗。 然後程式碼會 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))
        {
            connection.Open();

            using (SqlCommand command =
                new SqlCommand(queryString, connection))
            {
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    // Call Read before accessing data.
                    while (reader.Read())
                    {
                        Console.WriteLine(String.Format("{0}, {1}",
                            reader[0], reader[1]));
                    }

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

備註

當您在針對任何其他用途使用相關聯的 SqlConnection 之前,必須先確定 Close 已呼叫 SqlDataReader 方法。 Close方法可以直接呼叫或透過 Dispose 方法呼叫,直接或在using 語句區塊的內容中處置。

方法 Close 會藉由取用任何擱置的結果,在 上 SqlDataReader 填入輸出參數的值、傳回值和 RecordsAffected 。 視要取用的資料量而定,這可能是很長的作業。 如果輸出值、傳回值和 RecordsAffected 對您的應用程式而言不重要,在呼叫 方法之前 CloseCancel 呼叫相關聯 SqlCommand 物件的 方法可能會縮短關閉時間。

注意

請勿在 CloseDispose Connection、DataReader 或類別的 方法中 Finalize 呼叫任何其他 Managed 物件。 在完成項中,您應該只釋放類別直接擁有的 Unmanaged 資源。 如果類別未擁有任何 Unmanaged 資源,請不要在類別定義中包含 Finalize 方法。 如需詳細資訊,請參閱記憶體回收

適用於