画红线部分是什么意思!
/// <summary>/// 查询后返回 集合
/// </summary>
/// <typeparam name="TModel"></typeparam>
/// <param name="sql"></param>
/// <returns></returns>
protected List<TModel> GetListproc<TModel>(string procName, params SqlParameter[] paras) where TModel : new() {
List<TModel> list = new List<TModel>();
Type type = typeof(TModel);
//反射获取属性集合
PropertyInfo[] ps = type.GetProperties();
//扩展 type.GetCustomAttributes();
using (SqlConnection conn = new SqlConnection(DBConfig))
{
SqlCommand command = new SqlCommand(dataBaseOwner + "." + procName, conn);
command.CommandType = System.Data.CommandType.StoredProcedure;
foreach (SqlParameter p in paras)
{
command.Parameters.Add(p);
}
conn.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
// Model.GradeId=(int)reader["列名"];
// Model.GradeName=(int)reader["列名"];
TModel model = new TModel();
foreach (PropertyInfo pi in ps)
{
if (reader[pi.Name] != DBNull.Value)
{
//为指定列赋值 参数 (对象, 值 ,索引值) pi.Name 获取实体类中属性名
pi.SetValue(model, reader[pi.Name], null);
}
}
list.Add(model);
}
}
}
return list;
}
--------------------编程问答-------------------- 泛型约束,表示TModel的类型可以用new来实例化.. --------------------编程问答-------------------- 泛型约束,必须有构造函数 --------------------编程问答-------------------- 泛型约束
就有new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数
http://msdn.microsoft.com/zh-cn/library/sd2w2ew5(v=vs.80).aspx --------------------编程问答-------------------- --------------------编程问答--------------------
补充:.NET技术 , C#