我正在重寫舊的webforms應用程序的一部分。我想做一個中央功能,將執行選擇查詢。我會爲它提供SQL查詢和參數,剩下的工作就完成了。將MySqlDataReader存儲在變量中
到目前爲止,我有這樣的:
MySqlDataReader DoRead(string query, params MySqlParameter[] pms)
{
MySqlCommand myCommand;
if (!myConnection)
myConnection = new MySqlConnection(sCon);
if (myConnection.State != ConnectionState.Open)
{
myConnection.Close();
myConnection.Open();
}
myCommand = myConnection.CreateCommand();
myCommand.CommandText = query;
foreach (MySqlParameter p in pms)
{
myCommand.Parameters.Add(p);
}
return myReader = myCommand.ExecuteReader();
}
我的問題是,我可以的myReader
結果保存到一個變量,並返回同一個變量,而不是myReader
只是這樣我就可以立即關閉連接和讀者在函數中代替主代碼?
是的,你可以肯定。您可以將結果集保存在DataTable中,然後返回該DataTable。除此之外,我在上面發佈的代碼中看到了一些邏輯錯誤。 – Rahul 2014-10-03 13:09:58
簡答:是的。只需將讀取器中的所有數據讀入「DataTable」或「List」,關閉連接並返回該數據表或列表。但請注意 - 您不應該存儲datareader本身,而是從中讀取數據並存儲數據。 –
2014-10-03 13:13:58