日期:2014-05-18 浏览次数:21310 次
struct employees { public int id{ get; set; } public string name{ get; set; } public string departmentName{ get; set; } } DataTable dt=DBHelper.getEmployeeList(); List<employees> eList=mew List<employees>(); for (int i = 0; i < dt.rows.count; i++) { employees e=new employees(); e.name=dt.rows[0]["name"].tostring(); e.departmentName=dt.rows[0]["departmentName"].tostring(); eList.add(e); } datagridview.DataSource=eList;
------解决方案--------------------
樓上說+1
1.先把2個表關聯數據讀取出來放進datatable裏面,
然後再把它轉成實體類;
2.分別把2個表的數據讀取到2個datatable裏面,
循環employee表轉化為實體類的時候,有部門id嘛,去department表內找對應的部門,給部門屬性賦值。
這個方面不會快!
------解决方案--------------------
你的实体类不能只是简单的对映到表!这是个误区。以你的这个例子来说,你员工的实体类就应该包括一个“部门ID”“部门名称”两个属性才对。
------解决方案--------------------
如果楼主使用 1、2楼的方法 建议楼主 组织数据的时候 将 <部门Id,部门名称> 记录下来
下次优先查找这个集合,如果没有再去查找数据库。这样能节约一点时间
我和三楼的意思差不多,但是这样两种方法用哪个取决于你的数据模式
如果你的部门很多,而且每次用到的部门很少 那么用我的方法
如果你的部门很少,而且基本上都用到了那么用3楼的方法