THEONE

清风徐来,逆风飞翔-感受生活中的每一天
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

    首先当然是针对app.config 或web.config进行配置了,对于DAAB部分的具体配置,可以直接参考TerryLee的Enterprise Library Step By Step系列(三):数据访问程序块——入门篇这篇文章,本文略过。我主要想说一下DAAB在代码中如何实现数据库的基本操作,比如添加、删除、编辑、保存、查询以及存储过程控制。

    在设计环境中先引用EnterPrise中的EnterpriseLibrary.Common和EnterpriseLibrary.Data两个类,并声明。
    1、基本的数据操作:   

    Private Sub DataView()
        '利用EnterPriseLibrary中的ExecuteDataSet进行数据操作
        Dim DB As Database
        '建立默认数据链接
        'DB = DatabaseFactory.CreateDatabase()
        '加入参数映射到指定的配置文件
        DB = DatabaseFactory.CreateDatabase("temp")
        Dim ds As New DataSet

        'ExecuteDataSet方法返回一个DataSet类型,还有ExecuteReader等方法
        '其中ExecuteDataSet(CommandType.Text, "select * from book")也可以写成
        'ExecuteDataSet("proc_book_select")     其中Proc_book_select 是存储过程
        '其中放了select * from book一条语句,这两种实现结果是一样的

        ds = DB.ExecuteDataSet(CommandType.Text, "select * from book")
        DataGrid1.DataSource = ds.Tables(0)
        DataGrid1.DataBind()
    End Sub

    2、利用存储过程进行操作:
          一般分为无参、带参以及带输入输出的三种


    Private Sub ProcData()
        '针对不带参数的存储过程
        '其中DBCommandWrapper是一个基类,同时封装命令和参数处理到一个单一对象
        '而ExecuteDataSet只针对一个DBCommandWrapper就可以进行数据库的操作了


        Dim db As Database
        Dim comWrapper As DBCommandWrapper
        Dim ds As DataSet
        '创建数据库实例
        db = DatabaseFactory.CreateDatabase("temp")
        '传递参数-存储过程名称
        comWrapper = db.GetSqlStringCommandWrapper("proc_book_select")
        '执行存储过程
        ds = db.ExecuteDataSet(comWrapper)

        DataGrid1.DataSource = ds
        DataGrid1.DataBind()

        '---------------------------------------------------------------------------
        '带参的情况
        comWrapper = db.GetSqlStringCommandWrapper("proc_book_query")
        '传递参数
        Dim sqlOK = "and bname like 's%'"
        comWrapper.AddInParameter("@sqlstr", DbType.String, sqlOK)

        '执行存储过程
        ds = db.ExecuteDataSet(comWrapper)

        DataGrid1.DataSource = ds
        DataGrid1.DataBind()
        '---------------------------------------------------------------------------
        
'带输入输出参数的情况
        Dim dbc As DBCommandWrapper

        dbc = db.GetStoredProcCommandWrapper("proc_book_out")
        '引入输入参数
        dbc.AddInParameter("@instr", DbType.String, "Test")
        '引入输出参数
        dbc.AddOutParameter("@outstr", DbType.String, 20)

        db.ExecuteNonQuery(dbc)
        '输出结果
        TextBox1.Text = dbc.GetParameterValue("@outstr").ToString
    End Sub

利用DAAB对数据库进行控制是非常方便快捷的,通过DataBase提供的方法

  • ExecuteDataSet
  • LoadDataSet
  • ExecuteReader
  • ExecuteScalar
  • ExecuteNonQuery
  • UpdateDataSet

    基本可以完成数据库大量的操作,使代码优化、重用,提高了代码的一致性和安全性
    有了以上的方法,对于数据库的基本操作,比如添加、删除、编辑、保存以及查询等都将是SQL语句或者
    存储过程的工作了,而DAAB只需要简单的定义以及操作就可以了。