/// summary /// 获取UserInfo泛型汇合 /// /summary /// param name=connStr数据库衔接字符串/param /// param name=sqlStr要查询的T-SQL/param /// returns/returns public IListUserInfo GetUserInfoAll(string connStr, string sqlStr) { using (SqlConnection con
C#读取数据库前往泛型汇合 把DataSet类型转换为List泛型汇合
///
/// 获取UserInfo泛型汇合
///
/// 数据库衔接字符串
/// 要查询的T-SQL
///
public IList GetUserInfoAll(string connStr, string sqlStr)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand(sqlStr, conn))
{
SqlDataReader sdr = cmd.ExecuteReader();
IList list = new List();
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;
}
}
}
///
/// 获取泛型汇合
///
/// 类型
/// 数据库衔接字符串
/// 要查询的T-SQL
///
public IList GetList(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(ds, 0);
}
}
}
///
/// DataSetToList
///
/// 转换类型
/// 数据源
/// 需求转换表的索引
///
public IList DataSetToList(DataSet dataSet, int tableIndex)
{
//确认参数有效
if (dataSet == null || dataSet.Tables.Count <= 0 || tableIndex < 0)
return null;
DataTable dt = dataSet.Tables[tableIndex];
IList list = new List();
for (int i = 0; i < dt.Rows.Count; i++)
{
//创建泛型对象
T _t = Activator.CreateInstance();
//获取对象一切属性
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; }
}
分享到: