当前位置:编程学习 > C#/ASP.NET >>

NHibernate 2.0 怎么使用hql查询

 /// <summary>
      /// 使用整套sql语句查询多个对象
      /// </summary>
      /// <param name="content"></param>
      /// <returns></returns>
      public static T[] sqlAllArray(string content)
      {         

          if (content == "")
          {
              return default(T[]);
          }
          ISession session = DBconnection.OpenSession();
          T[] myObject;
          try
          {
              IList list = session.CreateSQLQuery(content).AddEntity(typeof(T)).List();
              //sess.CreateSQLQuery("SELECT ID, NAME, BIRTHDATE FROM CATS").AddEntity(typeof(Cat));

              if (0 == list.Count)
              {

                  return default(T[]);
              }
              myObject = new T[list.Count];
              for (int i = 0; i < list.Count; i++)
              {

                  myObject[i] = (T)list[i];
              }

          }
          catch
          {
              myObject = null;
          }
          finally
          {
              DBconnection.CloseSession(session);
          }
          return myObject;


      }

这样写报异常
大家帮忙啊
--------------------编程问答-------------------- 是hql?还是sql?

一个是对对象操作,一个是对表操作 --------------------编程问答-------------------- hql
 现在的nhibernate 2.0 不是可以使用完整的sql语句了吗?

原来的hql是这样的“from Formula as form, Parameter as param”

现在 2.0不是可以 这样了吗“select  * from Formula as form, Parameter as param”
但是我用完整的sql带入,报错误? --------------------编程问答-------------------- 异常信息是什么 --------------------编程问答-------------------- 捕捉到 NHibernate.ADOException 
  Message="could not execute query\r\n[ select p.nickname from Player as p where p.PositionID='1' and  p.YinShenTime <'2008-10-8 15:36:10' and  p.Id <>'200024' and  p.State='1' order by rank desc ]\r\n[SQL: select p.nickname from Player as p where p.PositionID='1' and  p.YinShenTime <'2008-10-8 15:36:10' and  p.Id <>'200024' and  p.State='1' order by rank desc]" 
  Source="NHibernate" 
  StackTrace: 
      在 NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters) 
      在 NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters) 
      在 NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet`1 querySpaces, IType[] resultTypes) 
      在 NHibernate.Loader.Custom.CustomLoader.List(ISessionImplementor session, QueryParameters queryParameters) 
      在 NHibernate.Impl.SessionImpl.ListCustomQuery(ICustomQuery customQuery, QueryParameters queryParameters, IList results) 
      在 NHibernate.Impl.SessionImpl.List(NativeSQLQuerySpecification spec, QueryParameters queryParameters, IList results) 
      在 NHibernate.Impl.SessionImpl.List(NativeSQLQuerySpecification spec, QueryParameters queryParameters) 
      在 NHibernate.Impl.SqlQueryImpl.List() 
      在 WuJue3.DBOperation`1.sqlAllArray(String content) 位置 F:\xjcy2\legameTwo\leGame\leGame\DB\DBOperation\DBOperation.cs:行号 411 

--------------------编程问答-------------------- 那你把这个sql复制到查询分析器里执行一下看看有没有错误不就行了
补充:.NET技术 ,  .NET Framework
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,