黑马程序员技术交流社区
标题:
sqlHelper中的泛型升级版本的问题
[打印本页]
作者:
许王斌
时间:
2012-10-23 16:11
标题:
sqlHelper中的泛型升级版本的问题
public static List<T2> ExcuteList<T2>(string strSelectCmd, params SqlParameter[] paras)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
SqlDataAdapter da = new SqlDataAdapter(strSelectCmd, conn);
da.SelectCommand.Parameters.AddRange(paras);
DataTable dt = new DataTable();
da.Fill(dt);
//将DataTable转成泛型集合List<T2>
if (dt.Rows.Count > 0)
{
List<T2> list = new List<T2>();
foreach (DataRow row in dt.Rows)
{
//(1)获得泛型类型
Type t = typeof(T2);
//(2)根据类型创建该类型的对象
T2 model = (T2)Activator.CreateInstance(t);
//(3)根据类型 获得 该类型所有属性定义
PropertyInfo[] properties = t.GetProperties();
//(4)遍历属性数组
foreach (PropertyInfo p in properties)
{
string colName = p.Name;
object colValue = row[colName];
p.SetValue(model, colValue, null);
}
list.Add(model);
}
return list;
}
}
return null;
}
复制代码
我弄不懂,谁给讲讲啊
//(2)根据类型创建该类型的对象
T2 model = (T2)Activator.CreateInstance(t);
//(3)根据类型 获得 该类型所有属性定义
PropertyInfo[] properties = t.GetProperties();
//(4)遍历属性数组
foreach (PropertyInfo p in properties)
{
string colName = p.Name;
object colValue = row[colName];
p.SetValue(model, colValue, null);
}
list.Add(model);
作者:
赵鹏程
时间:
2012-10-23 21:20
T2 model = (T2)Activator.CreateInstance(t);
动态生成以个model,这里面都是反射里面的东西
PropertyInfo[] properties = t.GetProperties(); 获得所有的属性
然后遍历每个属性
p.SetValue(model, colValue, null); 这是给属性附值,model表示当前实例,后面是值,后面不用管
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2