HQL查询返回的结果绑定到DataGrid的问题
来源:互联网 发布:口红推荐 知乎 编辑:程序博客网 时间:2024/04/25 15:11
采用了HQL语言的查询方式,如下是一个简单的查询代码:
IList list = session.CreateQuery("from SysJobs").List();
此代码表示的是从SysJobs对象中查询所有的值。
我采用绑定列,设定其字段为相应的SysJobs的属性,把返回结果绑定到DataGrid中,结果显示正常:
<asp:BoundColumn DataField="Name" HeaderText="Job Name"></asp:BoundColumn>
但是如果我采用下面的HQL语句就出问题了:
IList list = session.CreateQuery("select a.JobId, a.Name, a.Description from SysJobs a").List();
在绑定到DataGrid的时候报的错是:选定数据源上未能找到名称为“Name”的字段或属性。
我比较了一下两个绑定到DataGrid的IList(ArrayList对象),发现第一种情况没有使用select的时候每一笔记录存储一个SysJobs对象,因此在绑定的时候抓取此对象的属性是可以找到的,而第二种情况使用了select则每一笔记录存储的是数组对象,所以在绑定到DataGrid时找不到相应的字段或属性。
上面这种情况当然可以只采用第一种形式,不需要用select,但是当我需要从多个对象中抓取数据时就要用到select了,此时就需要解决这个问题了。尝试了两种方法,第一种方法刚开始没解决,后来在别人的帮助下解决了。第二种比较笨的方法虽然解决了,但是一旦改了索引就要对相应的绑定做更改,不易于更新。
1、 在HQL中可以将查询出来的属性组建成一个新的类
用这几个属性组建成一个新的类:
Select new Jobs(a.JobId, a.Name, a.Description) from SysJobs a
结果依然报错:class not found: Jobs [Select new Jobs(a.JobId, a.Name, a.Description) from BenQ.JobMonitor.SYSEntity.SysJobs a]
查资料发现新的类必须是持久的,必须实现Jobs及其hbm.xml文件映射。
但是可以作如下更改:
Select new SysJobs(a.JobId, a.Name, a.Description) from SysJobs a
并在SysJobs类中添加new SysJobs(a.JobId, a.Name, a.Description)这个构造方法。
2、 改DataGrid的绑定
把原来的绑定列改为模板列,并且把每个绑定字段都换成对应的数组下标
<asp:BoundColumn DataField="Name" HeaderText="Job Name"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="Job Name">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Name") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Job Name">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem[1]") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
- HQL查询返回的结果绑定到DataGrid的问题
- Northwind数据库的查询结果绑定到gridview的问题
- HQL查询的参数绑定
- HQL和SQL查询的结果不一致问题!!!
- hibernate下hql与sql查询结果的问题
- ibatis分组查询结果的返回参数绑定问题解决方案
- 将hql的CreateSqlQuery的查询结果绑定一个新建的dto中
- 在HQL select查询语句中自定义查询结果返回的数据类型
- 解决方法:hql查询无主键表中的数据,返回的结果全是一样的!
- Herbinate中用hql语句查询结果返回转换为对象的方法
- hibernate HQL查询的参数绑定
- Hql查询条件的参数绑定
- Hql查询条件的参数绑定
- Hql查询条件的参数绑定
- hibernate)HQL查询的参数绑定(转)
- hibernate HQL查询的参数绑定
- hibernate HQL查询的参数绑定
- hibernate HQL查询的参数绑定
- 四不一坚持
- 制作可执行的JAR文件包及jar命令详解
- 遇上你是我的缘
- sqlserver数据库中存图片
- 青春有梦,勇敢去追……
- HQL查询返回的结果绑定到DataGrid的问题
- 快速排序C语言实现
- 关于控制反转IoC--Inversion of Control Containers and the Dependency Injection pattern
- 文件的加锁解锁
- 转:Virtual Earth and AJAX--Part one
- DES加密算法详解
- Windows下JAVA环境变量的设置详解
- DataGrid中的公共事件
- 不用一行代码实现DBGRIDEh的标题按钮排序!