浅谈ADO.NET数据访问技术

        ADO.NET是一种新一代的数据存储技术,是一个全新的数据库访问模型,相对于ADO来说,ADO.NET支持内存中离线访问,与XML紧密集成在一起,让程序开发人员能够更加方便快捷的访问多种不用的数据源。

      一般来说,我们访问数据库中数据的一般步骤就三个,(1)必须连接数据库;(2)向数据库发出SQL语句,告诉数据库我要哪些数据;(3)返回我需要的数据。这个过程就像一个前些年一个流行的问题,问:把大象装到冰箱里需要几步?需要三步,第一,把冰箱门打开;第二,把大象放进去;第三,把冰箱门关上。

       下面我们看一段代码:

 Shared Function DBOperate(ByVal SQLString As String) As DataTable
        Dim CONN As String
        CONN = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=true;Data Source=metea.mdb;Jet OLEDB:Database Password=meteav1.0;"
        Dim oleconn As New OleDb.OleDbConnection(CONN)
        Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(SQLString, oleconn)
        cmd.CommandType = CommandType.Text
            Dim ObjectdsDataSet As New DataSet()
            Dim adapter As New OleDb.OleDbDataAdapter()
            adapter.TableMappings.Add("Table", "TEMP")
            adapter.SelectCommand = cmd
            If oleconn.State <> ConnectionState.Open Then
                oleconn.Open()  '打开数据库连接
            End If
            'cmd.ExecuteNonQuery()  '执行SQL语句
            If oleconn.State <> ConnectionState.Closed Then
                oleconn.Close() '关闭数据库连接
            End If
            adapter.Fill(ObjectdsDataSet) '填充数据集
            Return ObjectdsDataSet.Tables("TEMP")
        End If
    End Function

 
     在上面的代码中,我们能发现什么呢? 

一、Connection对象

     在ADO.NET中,我们经常要使用到Connection对象,这个对象是负责连接数据库,提供所访问数据源的类型,所在位置名称等信息。     

     Connection对象有几个常用的属性:

    (1)ConnectionString:用于获取或者设置连接数据源的字符串。在这个程序段中,我们定义的字符串类型变量CONN就是我们这里面的ConnectionString,里面展示了数据源Microsoft.Jet.OLEDB.4.0,数据库名称为xcode.mdb,数据库密码为xcodev1.0。

    (2)DataSource:获取要连接的名称,在这里面是xcode.mdb。

     还有ConnectionTimeout:表示获取在尝试连接时终止尝试并生成错误之前的等待时间。DataBase:表示获取当前数据库或在连接打开后使用的数据库的名称。

     Connection对象一般有几个常用的方法:

    (1)Open:表示打开数据库的连接。在上述代码段中,我们可以看到有一个oleconn.open()语句,这个意思就是打开数据库连接,也就是把数据在数据库中找出来的第一步。

    (2)Close:表示关闭数据库连接,在上述代码段中,有一个oleconn.close()的语句,这就表示关闭了和数据库的连接,也就是我们把大象装进冰箱后,将冰箱门关上。

二、Command对象

      在上述程序段中,我们还发现了一个语句,Dim cmd As OleDb.OleDbCommand = NewOleDb.OleDbCommand(SQLString, oleconn),这个语句中好像还发现了一个对象,也就是Command对象。

      Command在英语中表示什么意思呢?表示命令,也就是说,这个对象是和我们刚才所说的第二个步骤有关系。

      Command对象有几个常用的属性:

     (1)Connection:获取或设置Connection对象。

     (2)ConnectionText:获取或设置要执行的SQL语句。

     (3)CommandType:获取或设置命令的种类。(3种可选择的值)

     Command对象有几个方法:

     (1)ExecuteNonQuery:这个方法是用于执行SQL语句的,并返回SQL语句所查询到的数据(所影响到的行数)。这一个方法一般适用于执行Insert、Delete、Update等操作。在上述代码段中,我们能看到一句话:cmd.ExecuteNonQuery(),在这句话之前,我们使用了Dim cmd As OleDb.OleDbCommand = NewOleDb.OleDbCommand(SQLString, oleconn)创建了一个新的对象,然后使用cmd.方法()实现SQL语句的执行。

      (2)ExecuteScalar:这个方法用于执行查询语句,生成一个DataReader。

三、DataAdapter对象

      仔细观察后,我们还发现了一个DataAdapter,这个对象也很重要。如果大家仔细观察的话,会发现有些网卡的英文中就有一个单词Adapter,DataAdapter对象又称为数据适配器,主要作用就是在数据库和DataSet对象之间传递数据。(稍后就说DataSet对象)根据Command对象的要求,然后将所得到的数据填充到DataSet对象中。

      DataAdapter对象有几个常用的属性:

      (1)SelectCommand:用于设置从数据库中选择数据的SQL语句或者存储过程。这个属性可以在创建DataAdapter属性的时候指定,然后利用“SqlDataAdapter(SqlCommand 对象名)”这样的重载形式。

      (2)InsertCommand:用于设置向数据库中插入新记录的SQL语句或者存储过程。

      (3)DeleteCommand用于设置向数据库中删除记录的SQL语句或者存储过程。

      (4)UpdateCommand用于设置更新数据源中记录的SQL语句或者存储过程。

     我们可以看出,这个对象的属性就是对应着数据库的几个基本操作:增加、删除、修改和查询。

    DataAdapter对象的几个常用方法:

       (1)Fill方法:Fill表示填充的意思,Fill方法用于向DataSet对象中填充从数据源中读取的数据,用Fill方法时,我们一般用以下的格式:

       DataAdapter 对象名.Fill(DataSet 对象名,"数据表名")

       在上述程序代码段中,我们可以发现这条语句:adapter.Fill(ObjectdsDataSet),这就调用了Fill方法。

四、DataSet对象

       代码段中还有一个对象:DataSet 这个对象很重要。

       DataSet对象有几个基本属性:

       (1)Tables:DataSet对象有一个重要的属性,那就是Tables属性。Tables属性是一个DataTable对象集合,每个DataTable对象代表数据库中的一个表。如果想表示某一个特定表时,我们用这样的方法:

      数据集名.Tables(索引值)

      索引值从0开始。

      (2)Relations:和Table一样,Relations表示的是一个DataRelation对象集,每个DataRelation对象表达了数据表之间的关系。

       DataSet对象有5个常用的方法:

      (1)HasChanges:这个方法用于判断DataSet对象中的数据是否有变化,有变化返回True,没变化返回False。

      (2)GetChanges:这个方法用于获得DataSet中所有变动的数据。

      (3)AcceptChanges:这个方法用于提交自加载DataSet或者上次调用AcceptChanges以来,对DataSet进行的所有更改。提交后方法返回空值。

      (4)Clear:这个方法用于清除DataSet中所有数据。

      (5)Copy:这个方法用于复制DataSet的结构和数据。值得注意的是,这里面可以复制的还有数据的结构。


       总结一下,ADO.NET连接数据库的方法要比传统的ADO方便很多,代码量也得到了一定程度的减少,ADO.NET对于开发人员来说使用更为顺手,能更加方便快捷的开发出质量较高的应用程序。

       本文所用的数据库为ACCESS数据库,Visual Busic.NET中的ADO.NET也可以连接其他数据库,连接的ConnectionString不同,大家可以查阅资料完成相应的数据库开发。

       才疏学浅,如有纰漏,敬请指正!


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值