/// <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; } } } /// <summary> /// 獲取泛型集合 /// </summary> /// <typeparam name="T">類型</typeparam> /// <param name="connStr">數據庫連接字符串</param> /// <param name="sqlStr">要查詢的T-SQL</param> /// <returns></returns> public IList<T> GetList<T>(string connStr, string sqlStr) { using (SqlConnection conn = new SqlConnection(connStr)) { using (SqlDataAdapter sda = new SqlDataAdapter(sqlStr, conn)) { DataSet ds = new DataSet(); sda.Fill(ds); return DataSetToList<T>(ds, 0); } } } /// <summary> /// DataSetToList /// </summary> /// <typeparam name="T">轉換類型</typeparam> /// <param name="dataSet">數據源</param> /// <param name="tableIndex">需要轉換表的索引</param> /// <returns></returns> public IList<T> DataSetToList<T>(DataSet dataSet, int tableIndex) { //確認參數有效 if (dataSet == null || dataSet.Tables.Count <= 0 || tableIndex < 0) return null; DataTable dt = dataSet.Tables[tableIndex]; IList<T> list = new List<T>(); for (int i = 0; i < dt.Rows.Count; i++) { //創建泛型對象 T _t = Activator.CreateInstance<T>(); //獲取對象所有屬性 PropertyInfo[] propertyInfo = _t.GetType().GetProperties(); for (int j = 0; j < dt.Columns.Count; j++) { foreach (PropertyInfo info in propertyInfo) { //屬性名稱和列名相同時賦值 if (dt.Columns[j].ColumnName.ToUpper().Equals(info.Name.ToUpper())) { if (dt.Rows[i][j] != DBNull.Value) { info.SetValue(_t, dt.Rows[i][j], null); } else { info.SetValue(_t, null, null); } break; } } } list.Add(_t); } return list; }
public class UserInfo
{
public System.Guid ID { get; set; }
public string LoginName { get; set; }
public string LoginPwd { get; set; }
}
