SqlDataReader.Close 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
關閉 SqlDataReader 物件。
public:
virtual void Close();
public:
override void Close();
public void Close();
public override void Close();
abstract member Close : unit -> unit
override this.Close : unit -> unit
override this.Close : unit -> unit
Public Sub Close ()
Public Overrides Sub Close ()
實作
範例
以下範例可產生一個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))
{
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();
}
}
}
}
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()
Console.WriteLine(String.Format("{0}, {1}", _
reader(0), reader(1)))
End While
' Call Close when done reading.
reader.Close()
End Using
End Sub
備註
當你使用完Close相關資料後,必須明確呼叫SqlDataReader該方法,以便將相關資料SqlConnection用於其他用途。
此 Close 方法會填入輸出參數、回傳值及 RecordsAffected的值,增加處理大型或複雜查詢所需的關閉 SqlDataReader 時間。 當回傳值與查詢受影響的記錄數量不顯著時,可以透過先呼叫SqlDataReader相關Cancel物件的方法再呼叫該方法來SqlCommand縮短關閉Close所需的時間。
注意事項
不要在你的類別方法中呼叫 Close 或 Dispose 在 Connection、DataReader 或其他受管理物件 Finalize 上。 在終結者中,你應該只釋放你職業直接擁有的未管理資源。 如果你的類別沒有擁有任何非管理資源,請不要在類別定義中包含某個 Finalize 方法。 如需詳細資訊,請參閱垃圾回收(Garbage Collection, GC)。