黑马程序员技术交流社区
标题:
关于SQLHelper中的泛型方法
[打印本页]
作者:
林成彬
时间:
2013-12-19 19:06
标题:
关于SQLHelper中的泛型方法
本帖最后由 林成彬 于 2013-12-20 09:00 编辑
之前一直在学习传智的.NET视频,其中到后面所用到的SQLHelper的泛型方法,实在搞不懂,求指导,代码如下
public static List<T2> ExcuteList<T2>(string strSelectCmd, params SqlParameter[] paras)
{
//1.创建连接通道
using (SqlConnection conn = new SqlConnection(connStr))
{
//2.创建适配器
SqlDataAdapter da = new SqlDataAdapter(strSelectCmd, conn);
//2.1设置查询命令的参数
da.SelectCommand.Parameters.AddRange(paras);
//3.数据表
DataTable dt = new DataTable();
//4.将数据查询并填充到数据表中
da.Fill(dt);
//5.将DataTable转成泛型集合List<T2>
if (dt.Rows.Count > 0)
{
//6.创建泛型集合对象
List<T2> list = new List<T2>();
//7.遍历数据行,将行数据存入 实体对象中,并添加到 泛型集合中list
foreach (DataRow row in dt.Rows)
{
//留言:等学完反射后再讲~~~~!
//7.1先获得泛型的类型(里面包含该类的所有信息---有什么属性啊,有什么方法啊,什么字段啊....................)
Type t = typeof(T2);
//7.2根据类型创建该类型的对象
T2 model = (T2)Activator.CreateInstance(t);// new MODEL.Classes()
//7.3根据类型 获得 该类型的 所有属性定义
PropertyInfo[] properties = t.GetProperties();
//7.4遍历属性数组
foreach (PropertyInfo p in properties)
{
//7.4.1获得属性名,作为列名
string colName = p.Name;
//7.4.2根据列名 获得当前循环行对应列的值
object colValue = row[colName];
//7.4.3将 列值 赋给 model对象的p属性
//model.ID=colValue;
p.SetValue(model, colValue, null);
}
//7.5将装好 了行数据的 实体对象 添加到 泛型集合中 O了!!!
list.Add(model);
}
return list;
}
}
return null;
}
作者:
雨中恋人
时间:
2013-12-19 21:25
命名规则:
*:这个变量名必须要有意义。变量名中能够出现的特殊符号只有下划线
1 必须以“字母”_或@符号开头.--不要以数字开头
2 后面可以跟任意“字母”、数字、下划线.
注意:
1)你起的变量名不要与c#系统中的关键字重复.
2)在c#中,大小写是敏感的.
3)同一个变量名不允许重复定义(先这么认为,不严谨)
变量的命名规范
1:Camal命名规范(骆驼命名规范)
要求:变量的首单词的首字母要小写,其余每个单词的首字母都要大写。多用于给变量命名。numberOne
2:Pascal命名规范
要求:每个单词的首字母都要大写,其余字母小写。多用于给方法或者类命名。
作者:
雨中恋人
时间:
2013-12-19 21:29
发错人了
作者:
V_John
时间:
2013-12-20 20:53
雨中恋人 发表于 2013-12-19 21:29
发错人了
额。。。。
作者:
V_John
时间:
2013-12-20 20:55
这只是一种封装,把该用到的类进行泛型的封装,我是这么认为的,广泛的类型,额。。。这得慢慢理解吧,我也有点说不好,请大神回复,我顶
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2