posts - 43,  comments - 121,  trackbacks - 12
在上一篇 在NHibernate里执行存储过程 里给执行存储过程后返回的结果集指定了一个实体类,并且在查询方法 getCustOrderHistList 里 调用了方法 SetResultTransformer , 如果不调用 SetResultTransformer ,那么调用 IQuery 对象的 List( ) 方法后实际返回一个 Object 数组,那么就使用Object数组绑定控件 GridView 了,实体类 CustOrderHist 也懒得写了,不过 GridView 得多写点东西,下面看相应的变化:
映射关系都不需要做改变,实体类 CustOrderHist 去掉,方法 getCustOrderHistList 该成如下:
        public IList getCustOrderHistList ( string customerID )
        {
            IQuery query 
= session.GetNamedQuery( "GetCustomerOrderHistory" )
                .SetString( 
"CustomerID" , customerID );
            
return query.List( );
        }
页面 HTML 该成如下:
<form id="form1" runat="server">
    
<div>
        
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" DataTextField="CompanyName"
            DataValueField
="CustomerID" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
            Width
="238px">
        
</asp:DropDownList>
        
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
            
<Columns>
                
<asp:TemplateField HeaderText="ProductName">
                    
<ItemTemplate>
                        
<%# ( ( object[] )Container.DataItem )[0]%>
                    
</ItemTemplate>
                
</asp:TemplateField>
                
<asp:TemplateField HeaderText="Total">
                    
<ItemTemplate>
                        
<%# ( ( object[] )Container.DataItem )[1]%>
                    
</ItemTemplate>
                
</asp:TemplateField>
            
</Columns>
        
</asp:GridView>
    
</div>
    
</form>

浏览页,使用SQL 事件探察器跟踪,执行到相关方法时实际执行的SQL语句和上篇文章一样.
posted on 2007-07-12 15:09 空空儿 阅读(528) 评论(2)  编辑 收藏 网摘 所属分类: O/R Mapping

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-08-21 01:16 编辑过
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》



相关文章:

相关链接: