个人写法可能有点傻···在改进先贴出来!让大家找点思路····
目的:将两个表的内容综合到一个集合里,然后邦定到GridView 上 解决方法:1.创建一个综合了两个实体类的一个新的实体类(这个实体类不用有hbm.xml 文件)2.将查询到的信息赋值给新实体类3.将实体类存放在 ArrayList 中4.GridView 直接邦定 ArrayList
---------------------------------------------------------------------------------------------------------
对应数据库表的两个实体类
using System;
namespace Entitys{ /// <summary> /// ///功能描述: ///开发者: ///建立时间: ///修订描述: ///进度描述: /// </summary> public class UserInfo { private int m_id; private string m_TureName; private int m_age;
public int id { get { return m_id; } set { m_id = value; } }
public string TureName { get { return m_TureName; } set { m_TureName = value; } }
public int age { get { return m_age; } set { m_age = value; } }
}}
using System;using System.Collections;using System.Data;
namespace Entitys{ /// <summary> /// ///功能描述: ///开发者: ///建立时间: ///修订描述: ///进度描述: /// </summary> public class login { private int m_id; private string m_Uname; private string m_Upwd; private DateTime m_LastTime;
public int id { get { return m_id; } set { m_id = value; } }
public string Uname { get { return m_Uname; } set { m_Uname = value; } }
public string Upwd { get { return m_Upwd; } set { m_Upwd = value; } }
public DateTime LastTime { get { return m_LastTime; } set { m_LastTime = value; } }
}}
//新构建的 实体类
using System;using System.Collections.Generic;using System.Text;using Entitys;
namespace CommonEntitys{ public class UserCollection { public UserCollection(login l,UserInfo info) { this.id = l.id; this.Uname = l.Uname; this.Upwd = l.Upwd; this.age = info.age; this.LastTime = l.LastTime; this.TureName = info.TureName; }
private int m_id; private string m_TureName; private int m_age;
private string m_Uname; private string m_Upwd; private DateTime m_LastTime;
public int id { get { return m_id; } set { m_id = value; } }
public string TureName { get { return m_TureName; } set { m_TureName = value; } }
public int age { get { return m_age; } set { m_age = value; } }
public string Uname { get { return m_Uname; } set { m_Uname = value; } }
public string Upwd { get { return m_Upwd; } set { m_Upwd = value; } }
public DateTime LastTime { get { return m_LastTime; } set { m_LastTime = value; } } }}
调用方法
using System;using System.Collections.Generic;using System.Collections;using System.Data;using NHibernate.Engine;using NHibernate;using NHibernate.Expression;using NHibernate.Cfg;
/// <summary> /// NHibernate执行 多表查询 /// </summary> /// <returns></returns> public ArrayList CreateCriteriaTest3() { IList list = null; ArrayList arr = new ArrayList(); try { string sql = "from login as a , UserInfo as b where a.id=b.id ";
session = cfg.BuildSessionFactory().OpenSession(); IQuery query = session.CreateQuery(sql); list = query.List();
IEnumerator ie = list.GetEnumerator(); while (ie.MoveNext()) { object[] objs = (object[])ie.Current; login l = (login)objs[0]; UserInfo info = (UserInfo)objs[1]; UserCollection collection = new UserCollection(l, info); arr.Add(collection); } } catch (Exception ex) { this.m_error = ex.Message; } finally { this.session.Close(); } return arr; }
展现层调用
protected void Button5_Click(object sender, EventArgs e) { ArrayList list = UserTools.CreateCriteriaTest3(); this.GridView1.DataSource = list; this.GridView1.DataBind(); }
---------------------------------------------------------------------------------------------------------
转载于:https://www.cnblogs.com/xxj-jing/archive/2007/10/18/2890132.html
相关资源:各显卡算力对照表!