• Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇


     写在前面:在进阶篇中,主要通过对使用存储过程,使用事务,加密连接串三部分内容的介绍,给企业库的初学者提供一点帮助。

    一.  使用存储过程:

    关于数据访问应用程序块的介绍在入门篇里面已经说过了,这里不再重复。下面我们来看看在数据访问应用程序块里面使用存储过程的方法:

    1.        不传递参数:不传递参数时值需要指定存储过程的名称,已经命令的类型即可。

     1/// <summary>
     2        /// 执行存储过程(1)——不传递参数(NoPara)
     3        /// </summary>

     4        private void FormatDataBySp1()
     5        {
     6            ///创建数据库实例
     7            Database db = DatabaseFactory.CreateDatabase("NorthWind");
     8            
     9            ///传递参数
    10            DBCommandWrapper dbc = db.GetStoredProcCommandWrapper("GetProductsList");
    11
    12            ///执行存储过程
    13            DataSet ds = db.ExecuteDataSet(dbc);
    14            
    15            ///绑定数据
    16            DataGrid1.DataSource = ds.Tables[0];
    17            DataGrid1.DataBind();
    18        }

    2.        传递输入参数:需要注意的是在增加参数时是AddInParameter

     1/// <summary>
     2        /// 执行存储过程(2)——传递输入参数(Input)
     3        /// </summary>

     4        private void FormatDataBySp2()
     5        {
     6            ///创建数据库实例
     7            Database db = DatabaseFactory.CreateDatabase("NorthWind");
     8            
     9            ///传递参数
    10            DBCommandWrapper dbc = db.GetStoredProcCommandWrapper("CustOrdersDetail");
    11            dbc.AddInParameter("@OrderID",System.Data.DbType.Int32,10248);
    12
    13            ///执行存储过程
    14            DataSet ds = db.ExecuteDataSet(dbc);
    15            
    16            ///绑定数据
    17            DataGrid1.DataSource = ds.Tables[0];
    18            DataGrid1.DataBind();
    19        }

    3.        传递输出参数:需要注意的是在增加参数时是AddOutParameter

     1/// <summary>
     2        /// 执行存储过程(3)——传递输出参数(Output)
     3        /// </summary>

     4        private void FormatDataBySp3()
     5        {
     6            ///创建数据库实例
     7            Database db = DatabaseFactory.CreateDatabase("NorthWind");
     8            
     9            ///传递参数
    10            DBCommandWrapper dbc = db.GetStoredProcCommandWrapper("GetProductDetails");
    11
    12            dbc.AddInParameter("@ProductID",System.Data.DbType.Int32,12);
    13            dbc.AddOutParameter("@ProductName",System.Data.DbType.String,50);    //输出
    14
    15            ///执行存储过程
    16            db.ExecuteNonQuery(dbc);
    17            
    18            string result = dbc.GetParameterValue("@ProductName").ToString();    //得到输出参数的值
    19        }

    二.  使用事务:

    在企业库数据访问应用程序块里面,对事务提供了很好的支持,具体的使用方法在程序里面有注释,这里就不多说了。

     1/// <summary>
     2        /// 利用事务更改数据
     3        /// </summary>

     4        private void ExecuteUseTran()
     5        {
     6            ///创建数据库实例
     7            Database db = DatabaseFactory.CreateDatabase("NorthWind");
     8
     9            using(IDbConnection Idbconn = db.GetConnection())
    10            {    
    11                ///打开连接
    12                Idbconn.Open();
    13                
    14                ///创建事务
    15                IDbTransaction Idbtran = Idbconn.BeginTransaction();
    16
    17                try
    18                {    
    19                    ///执行两个存储过程
    20                    db.ExecuteNonQuery(CommandType.StoredProcedure,"InserOrders");
    21                    db.ExecuteDataSet(CommandType.StoredProcedure,"UpdateProducts");
    22                    
    23                    ///执行完成后提交事务
    24                    Idbtran.Commit();
    25                }

    26                catch
    27                {    
    28                    ///回滚事务
    29                    Idbtran.Rollback();
    30                }

    31                finally
    32                {
    33                    ///关闭连接
    34                    Idbconn.Close();
    35                }

    36            }

    37
    38        }

    三.  加密连接字符串:

    1.        创建一个加密的Stored Provider

    2.        创建新的加密算法:




    3.       
    选择加密算法:


    4.       
    创建加密密钥:


    5.        保存加密密钥的保存文件,该文件要小心保存:

    6.        指定加密的部分:

     

    这样我们看到,在配置文件里面的内容变成了乱码。

    总结:关于数据访问应用程序块的进阶篇就写到这里了,希望对初学企业库的朋友有所帮助

     

    支持TerryLee的创业产品Worktile
    Worktile,新一代简单好用、体验极致的团队协同、项目管理工具,让你和你的团队随时随地一起工作。完全免费,现在就去了解一下吧。
    https://worktile.com
  • 相关阅读:
    spring mvc DispatcherServlet详解之一---处理请求深入解析
    spring mvc DispatcherServlet详解之前传---前端控制器架构
    [推荐]趣味剖析Spring5核心原理
    源码揭秘mybatis日志实现的原理
    mybatis返回自增主键踩坑记
    根据身份证号码判定原籍地的方法
    深入源码解析spring aop实现的三个过程
    匆忙--一个大龄十年老程序员战战兢兢的应对中年危机的2019年总结与2020年展望
    Java 趟坑录
    迷你MVVM框架 avalonjs1.5 入门教程
  • 原文地址:https://www.cnblogs.com/Terrylee/p/258961.html
Copyright © 2020-2023  润新知