zoukankan      html  css  js  c++  java
  • NHibernate 之调用存储过程

    1,创建存储过程:
    --创建一个登陆的存储过程,
    if exists(select name from sys.sysobjects where name='LoginProc')
     
    drop procedure LoginProc
    go
    create procedure LoginProc(@name varchar(100),@password varchar(100))
    as
     
    if exists(select u.Name from dbo.MSUser u where u.Name=@name and u.Password=@password)
        
    --着重注意,返回的列名为value ,值为 1 或者是 0
        select 1 as value
    else
        
    select 0 as value

    2,修改user.hbm.xml,注意是在class 之后,名称为随便定义, 返回值为value ,类型为long
    </class>
      <sql-query name="LoginProceure">
        <return-scalar column="value" type="long"/>
        exec LoginProc ?,?
      </sql-query>
    </hibernate-mapping>
    3. 执行存储过程

     #region 执行存储过程
            
    public IList ExecuteProcedure(string spName,string name,string pwd)
            {
                IList result 
    = new ArrayList();
                
    try
                {
                   
    return Session.GetNamedQuery(spName).SetString(0,name).SetString(1,pwd).List();
                }
                
    catch (Exception ex)
                {
                    
    throw ex;
                }
                
    finally
                {
                    Session.Flush();
                }
            }
            
    #endregion
            
             
    object obj= il[0];
                
    if(obj.ToString()=="1")
                    
    return true;
                
    else
                    
    return false;


  • 相关阅读:
    如何搭建Redis集群
    AOP的作用
    IDEA上传代码到GitGub
    Runnable的作用及使用方式
    idea如何自动生成序列化ID?
    15000 字的 SQL 语句大全
    图解算法时间复杂度
    图解JVM的类加载机制(详细版)
    (转)图解排序算法之归并排序
    图解分布式id生成算法SnowFlake
  • 原文地址:https://www.cnblogs.com/csharponworking/p/2046136.html
Copyright © 2011-2022 走看看