一般我們用使用ADO.NET查詢數據庫返回泛型集合使用SqlDataReader逐行讀取數據存入對象
代碼
/// <summary>
/// 獲取UserInfo泛型集合
/// </summary>
/// <param name="connStr">數據庫連接字符串</param>
/// <param name="sqlStr">要查詢的T-SQL</param>
/// <returns></returns>
public IList<UserInfo> GetUserInfoAll(string connStr, string sqlStr)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand(sqlStr,conn))
{
SqlDataReader sdr = cmd.ExecuteReader();
IList<UserInfo> list = new List<UserInfo>();
while (sdr.Read())
{
UserInfo userInfo = new UserInfo();
userInfo.ID = (Guid) sdr["ID"];
userInfo.LoginName = sdr["LoginName"].ToString();
userInfo.LoginPwd = sdr["LoginPwd"].ToString();
list.Add(userInfo);
}
return list;
}
}
}
這樣做雖然返回了需要的數據,但如果當數據庫表非常多的時候,針對每一個表都需要去建立這樣的一個方法,非常麻煩,也增加了重復勞動力。
而直接返回DataSet操作起來又不方便,DataSet是一種弱類型。也不如泛型集合操作效率高!
這個時候就需要我們來提取一個通用的轉換方法了DataSetToList。
代碼
1 /// <summary>
2 /// 獲取泛型集合
3 /// </summary>
4 /// <typeparam name="T">類型</typeparam>
5 /// <param name="connStr">數據庫連接字符串