首页 > 其他分享 >NHibernate1.2 执行多表查询

NHibernate1.2 执行多表查询

时间:2022-11-03 22:33:29浏览次数:53  
标签:多表 string get public return NHibernate1.2 using 查询 id

个人写法可能有点傻···在改进先贴出来!让大家找点思路····
目的:
将两个表的内容综合到一个集合里,然后邦定到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();
}---------------------------------------------------------------------------------------------------------

标签:多表,string,get,public,return,NHibernate1.2,using,查询,id
From: https://blog.51cto.com/xxjjing/5821272

相关文章

  • 07_查询数据_系统数据字典_SQL值表达式
    一、系统数据字典 代码:select*fromgp_pgdatabase;(查看数据字典) 二、SQL值表达式值表达式包括查询条件中的各种命令;值表达式的结果称为标量;表达式语法允许从原......
  • 模糊查询并且对HBase进行CRUD的操作
     我这是两次的实验用的一个项目,第二次的实验是在第一次上的实验的基础上增加而来     pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="......
  • MySQL连接分页查询问题
    问题两表连接查询分页,如果不进行排序,则分页不准确,这将导致第一页出现的数据会在后几页再次出现,而且每次查询第一页结果都不一致解决连接查询分页必须按主键分页才能保证......
  • Linux中tac命令倒序查询日志
    cat命令是正序开始查询日志比如:catxxx.log|grep"sssdsd"如果日志文件比较大,那么会很慢或者直接出错 可以使用tac命令,这个是cat反过来写tacxxx.log|grep"sssdsd"这样就......
  • MySQL—简单,分组,条件查询
    MySQL1.什么是SQL:结构化查询语言(StructuredQueryLanguage)。2.SQL的作用:客户端使用SQL来操作服务器。启动mysql.exe,连接服务器后,就可以使用sql来操作服务器了。将......
  • 数据库等值查询与统计信息
    简介: 统计信息是为优化器的cost估算提供数据支撑,其中很重要的一点需求便是等值查询(EQUALS,IN等)场景下的基数估算。概念统计信息是为优化器的cost估算提供数......
  • 项目上线后,谈一下感触比较深的一点:查询优化
    开心一刻儿子有道题不会做,喊我过去教他我推了推一旁的老公:我头疼,你去吧老公不动,我:零花钱涨一千话音刚落,老公就屁颠屁颠跑去儿子房间进去不到几分钟,一声......
  • postgresql闪回查询及其问题
    其实早在2018年,PostgresProfessional就实现了一个闪回查询的原型,基于vacuum_defer_cleanup_age和track_commit_timestamp。这本质上和LZ所想一致。但是存在的问题是膨胀......
  • sqlserver查询语句SELECT
    SELECT查询语句数据查询是数据库的核心操作,其功能是指根据用户的需要从数据库中提取所需数据,通过SQL的数据操纵语言的SELECT语句可以实现数据库数据的查询。SELECT语句是......
  • day24 JDBC批处理(通用泛型查询方法 & 下划线转驼峰命名法)
    批处理publicstaticIntegeraddBatch(String[]sqls){ init(); try{ //设置关闭自动提交 conn.setAutoCommit(false); Statementstmt=conn.createState......