Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在nhibernate中提交_C#_Sql_Nhibernate - Fatal编程技术网

C# 在nhibernate中提交

C# 在nhibernate中提交,c#,sql,nhibernate,C#,Sql,Nhibernate,我为NHibernate创建了一个简单的测试,但它并不正常。有人知道下面这个问题吗 PosDAL实例的标识符。用户从4更改为 (System.Int32)到0(System.Int32) 我正在使用SQLServer2008。数据库中Id为主键且自动增加1的用户表。在db中,我手动添加简单的行,如:用户名、电子邮件、全名等。身份证号码是4。但它不起作用。我删除了那一行,程序正常运行 我在业务逻辑层的功能: public bool CheckLogin(string sUsername, str

我为NHibernate创建了一个简单的测试,但它并不正常。有人知道下面这个问题吗

PosDAL实例的标识符。用户从4更改为 (System.Int32)到0(System.Int32)

我正在使用SQLServer2008。数据库中Id为主键且自动增加1的用户表。在db中,我手动添加简单的行,如:用户名、电子邮件、全名等。身份证号码是4。但它不起作用。我删除了那一行,程序正常运行

我在业务逻辑层的功能:

public bool CheckLogin(string sUsername, string sEnCodePassw)
        {
            using(ISession session = SessionFactory.OpenSession())
             using (ITransaction tx = session.BeginTransaction())
             {
                 IList oUser = 
                     session
                     .CreateSQLQuery("SELECT * FROM USERS WHERE U_USERNAME = ?")
                     .AddEntity(typeof(Users))
                     .SetString(0, sUsername)
                     .List();
                 tx.Commit();
                 return false;
             }
        }

select不需要事务,也不需要提交任何内容,因为您没有修改任何数据。所以,试着摆脱交易

using(ISession session = SessionFactory.OpenSession())
         {
             IList oUser = 
                 session
                 .CreateSQLQuery("SELECT * FROM USERS WHERE U_USERNAME = ?")
                 .AddEntity(typeof(Users))
                 .SetString(0, sUsername)
                 .List();
             return false;
         }
还要确保您的代码逻辑实际执行了它应该执行的操作。当前,您的代码将始终返回false,您应该将return语句更改为以下内容

return oUser != null && oUser.Count > 0;

谢谢你的推荐。我有另一个想法,但它返回false:
返回oUser.Contains(sEnCodePassw)
有什么问题吗?酷…我没有注意到你通过提问编辑了你的第一条评论这里是我的答案:I change-IList-oUser=…List();到
IList oUser=....列表()
User oObject=new User()
oObject=oUser[0]
返回(oObject!=null&&oObject.Password=sEncodePassw)