我有一個基類,其中包含SqlDataReader
它使用存儲過程獲取數據,這很好,直到我返回數據讀取器備份說連接爲null。c#SqlDatareader在我的基類返回空連接錯誤
有沒有人有任何想法?這裏是我的代碼:
public SqlDataReader GetDataReader(string QueryName, SqlParameter[] Params)
{
SqlConnection conn = new SqlConnection(this.ConnectionString);
SqlDataReader reader;
using (conn)
{
SqlCommand command = new SqlCommand(QueryName,conn);
command.CommandType = CommandType.StoredProcedure;
if(Params !=null)
command.Parameters.Add(Params);
conn.Open();
reader = command.ExecuteReader();
}
// conn.Close();
return reader;
}
如果你發現,我有註釋掉的密切的一部分,這是我試圖返回DataReader的時候備份它被設置爲接近於得到它的工作,出於某種原因???
謝謝!
很誠實:我會**從不**傳遞一個「打開」的'SqlDataReader' - 這是一個可怕的設計,只是一個災難的祕訣。相反,讓你的方法實際**讀**數據,把它放到'List'中,儘快再次關閉你的'SqlDataReader',然後將該列表返回給調用者... –
如果你有讀者在基類?當然這比複製和粘貼代碼更好的設計,每次你想訪問數據,而不是隻使用低音類中的方法返回一個閱讀器 – Funky