nhibernate对存储过程的运用

using NHibernate.Engine;
using NHibernate;

namespace DataAccess
{
    public class UserAccess
    {
        public UserAccess()
        {
            cfg.AddAssembly("Entitys");
            //session = cfg.BuildSessionFactory().OpenSession();
        }

        private NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();
        private ISession session = null;
        private ITransaction tran = null;

        /// <summary>
        /// NHibernate 调用存储过程
        /// </summary>
        /// <returns></returns>
        public ArrayList ExeProc()
        {
            ArrayList list = new ArrayList();
            ISessionFactoryImplementor imp = (ISessionFactoryImplementor)cfg.BuildSessionFactory();
            IDbConnection conn = imp.ConnectionProvider.GetConnection();
            IDbCommand cmd = imp.ConnectionProvider.GetConnection().CreateCommand();

            try
            {
                cmd.CommandText = "TestProc";  //存储过程名
                cmd.CommandType = System.Data.CommandType.StoredProcedure;
                IDbDataParameter parameter = cmd.CreateParameter();
                parameter.ParameterName = "id";  //需要的参数
                parameter.Value = 3;    //为参数赋值
                cmd.Parameters.Add(parameter); 
                cmd.Connection = conn;   //设置连接
                IDataReader read= cmd.ExecuteReader(); 
                while (read.Read())
                {
                    UserTest collection = new UserTest();
                    collection.age = read.GetValue(0).ToString();
                    collection.id = read.GetValue(1).ToString();
                    collection.LastTime = read.GetValue(2).ToString();
                    collection.TureName= read.GetValue(3).ToString();
                    list.Add(collection);
                }
            }
            catch (Exception ex)
            {
                this.m_error = ex.Message;
            }
            finally
            {
                imp.CloseConnection(conn);
            }
            return list;
        }

    }

-----------展现层调用------------

    protected void Button8_Click(object sender, EventArgs e)
    {
        list = UserTools.ExeProc();
        this.GridView1.DataSource = list;
        this.GridView1.DataBind();
        this.Label2.Text = UserTools.Error;
    }

--------------sql 存储过程创建方法--------------------

--创建存储过程
alter proc TestProc
(
@id int
)
as
(
 select * from login where id=@id
)

--测试存储过程
exec TestProc 3


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xxj_jing/archive/2007/10/18/1831433.aspx

转载于:https://www.cnblogs.com/xusui/archive/2011/06/16/2082660.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值