我已經創建了一個Sql幫助器類,它可以處理我的大部分需求。返回關閉連接的SqlDataReader
當中的,我有一個執行SQL語句和如下返回一個SqlDataReader功能:
public static SqlDataReader ExecuteCommand(string cmdText, bool useParameters)
{
using (var sqlConnection = new SqlConnection(_connectionString.ConnectionString))
{
sqlConnection.Open();
using (var sqlCommand = new SqlCommand(cmdText, sqlConnection))
{
if (useParameters && SqlParameterCollection.Count > 0)
{
sqlCommand.Parameters.AddRange(SqlParameterCollection.ToArray());
}
using (var sqlDataReader = sqlCommand.ExecuteReader())
{
return sqlDataReader;
}
}
}
}
的問題,這是很明顯,事實上,它返回它需要一個打開的連接一個SqlDataReader和連接關閉的事實。
我已經看過要返回一個SqlDataAdapter來代替,但是在閱讀了以下線程SqlDataAdapter vs SqlDataReader之後,它聽起來不像是一個好主意,就像在每個場景中使用的一般函數一樣,當你完全不知道數量時它應該加載的數據。
所以...什麼是好的選擇?
我唯一能想到的就是在SqlDataReader中循環遍歷行並執行yield return IEnumerable<IDataRecord>
。
有沒有更好的方法來達到這個目標呢?
謝謝,正是我之後。 – cogumel0