NHibernate原生SQL查询

习惯原生SQL的同学刚搞NH可能觉得坐点复杂的查询NH就无能为力了,其实不然,NH提供了使用原生SQL的功能,就是有些地方要注意下。

image

原生的SQL如图,查询每天的售票情况。。下面我们来看看NH里怎么写

        public IList<object[]> GetDaysOrderTotal()
        {
            string timeUnit = "100";
            string sql = "select CONVERT(VARCHAR(" + timeUnit + "), od.BuyTime, 102) timeUnit,count(*) count " +
"from TicketAssign ta, OrderDetail detail,[Order] od ,DJ_TourEnterprise dj,TicketPrice tp,Ticket t "+
"where ta.OrderDetail_id =detail.Id and detail.Order_id=od.Id "+
"and detail.TicketPrice_id=tp.Id and tp.Ticket_id=t.Id and t.Scenic_id=dj.Id group by CONVERT(VARCHAR(" + timeUnit + "), od.BuyTime, 102)";
            var query = session.CreateSQLQuery(sql)
                .AddScalar("count",NHibernateUtil.Int32)
                .AddScalar("timeUnit",NHibernateUtil.String);
            return query.List<object[]>();
        }

同时,前台绑定object也要这样

    <asp:Repeater runat="server" ID="rptdate">
        <HeaderTemplate>
            <table>
        </HeaderTemplate>
        <ItemTemplate>
            <tr>
                <td>
                    <a href='/manager/quzhouspring/TicketStatistics3.aspx?date=<%# ((object[])Container.DataItem)[1].ToString() %>'>
                        <%# ((object[])Container.DataItem)[1].ToString() %></a>
                </td>
                <td>
                    <%# ((object[])Container.DataItem)[0].ToString() %>
                </td>
            </tr>
        </ItemTemplate>
        <FooterTemplate>
            </table>
        </FooterTemplate>
    </asp:Repeater>

转载于:https://www.cnblogs.com/TivonStone/archive/2013/01/29/2880969.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值