簡體   English   中英

數據讀取器在命令中使用語句

[英]Data reader in command using statement

我有一個舊系統,我注意到以下代碼

var dataTable = new DataTable();
using(var connection = new SqlConnection())
using(var command = connection.CreateCommand())
{
     command.commandType = CommandType.StoredProcedure;
     //Attach command parameters etc. 
     var reader = command.ExecuteReader();
     dataTable.Load(reader);
}
return dataTable;

通常,我會將數據讀取器包裝到using語句中,這樣行將顯示為:

using(var reader = command.ExecuteReader())
{
   dataTable.Load(reader);
}

我想我會安排時間來更新這些方法,以包括數據讀取器的using語句,但是我想知道是否有人知道在上面的實例中,當命令或連接被處置了嗎?

您必須自己做,因為該命令不會為您清除DataReader 參見示例SqlCommand.Dispose

由於DataTable.Load不會保留對所用DataReader的引用,因此在這種情況下可以使用using 作為證明,請參見DataTable參考源

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM