利用泛型、反射 读取数据库数据
来源:互联网 发布:外国人吃中国食物 知乎 编辑:程序博客网 时间:2024/05/16 02:05
//基类
public abstract class BaseDAL
{
public BaseDAL()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
protected List<T> GetTabList<T>(SqlDataReader reader)
where T : class,new()
{
List<T> list = new List<T>();
try
{
while (reader.Read())
{
T entity = new T();
for (int i = 0; i < reader.FieldCount; i++)
{
PropertyInfo proinfo = entity.GetType().GetProperty(reader.GetName(i));
proinfo.SetValue(entity, reader.GetValue(i), null);//这里最好判断一下reader.GetValue(i)的数据类型,以及在数据库中是否为DbNULL
}
list.Add(entity);
}
}
catch (Exception ex)
{
throw ex;
}
return list;
}
}
//子类
public class CompanyDAL:BaseDAL
{
public CompanyDAL()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
public List<Company> GetAllCompany()
{
List<Company> list = new List<Company>();
using (SqlConnection conn = new SqlConnection("data source=.;database=DBTest;uid=sa;pwd=sa;"))
{
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "select * from T_Company";
SqlDataReader sdr = cmd.ExecuteReader();
list = base.GetTabList<Company>(sdr);
conn.Close();
}
return list;
}
}
//实体类
public class Company
{
private int id;
public int Id
{
get { return id; }
set { id = value; }
}
private string cName;
public string CName
{
get { return cName; }
set { cName = value; }
}
}
//Web
List<Company> list = (new CompanyDAL()).GetAllCompany();
this.GridView1.DataSource = list;
this.GridView1.DataBind();
- 利用泛型、反射 读取数据库数据
- 从配置文件读取数据连接信息,利用泛型和java反射机制,写一个公共的增删改查数据库操作类
- 从数据库读取数据后利用反射为对应的实体类的属性赋值
- VA利用反射进行数据库的读取免数据类型转换
- 利用SqlDataReader读取大量的数据库数据
- 利用java反射机制实现读取excel表格中的数据
- java中利用泛型反射创建数据库
- java jxl利用反射将数据库数据导入到Excel
- 利用反射读取Properties文件
- 利用反射复制数据
- 利用反射操作泛型
- 利用反射操作泛型
- 利用反射解析json数据
- 利用反射+SharedPreferences保存数据
- 利用反射reflection读取注释Annotation
- 利用反射读取 私有 变量(很黄很暴力)
- 利用反射读取类的私有变量
- 利用反射读取类的私有变量
- left join、right join、inner join的区别
- Wireless tools for Linux 的一些资料收集
- PHP中自动转义--小结
- 以前画的一张技术开发框架图,分享一下
- SWT/Jface 全接触
- 利用泛型、反射 读取数据库数据
- 用phpize编译动态扩展模块
- 活动目录基础知识
- Hash 算法及其应用
- 破解360手机助手的锁定功能
- 黑龙江发布道路结冰黄色预警和暴雪蓝色预警-气象台-黑龙江-冷空气
- linux 日志编程(总结)
- Linux多线程同步的几种方式
- Android, property 添加写权限