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
備註
當您透過 使用 SqlDataReader 來針對任何其他用途使用相關聯的 SqlConnection 時,您必須明確呼叫 Close 方法。
方法 Close
會填入輸出參數的值、傳回值和 RecordsAffected
,增加用來處理大型或複雜查詢的 關閉 SqlDataReader
所需的時間。 當傳回值和受查詢影響的記錄數目不重要時,在呼叫 Close
Cancel 方法之前呼叫相關聯SqlCommand物件的方法可以減少關閉 SqlDataReader
所需的時間。
警告
請勿在 Connection、DataReader 或任何其他 Managed 物件的 方法上Finalize
呼叫 Close
或 Dispose
。 在完成項中,您應該只釋放類別直接擁有的 Unmanaged 資源。 如果類別未擁有任何 Unmanaged 資源,請不要在類別定義中包含 Finalize
方法。 如需詳細資訊,請參閱記憶體回收。
適用於
另請參閱
- DataAdapter 和 DataReader
- SQL Server and ADO.NET (SQL Server 和 ADO.NET)
- SQL Server 連接共用 (ADO.NET)
- ADO.NET 概觀 \(部分機器翻譯\)