专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > VB Dotnet

ADO.NET数据库访问入门,该如何解决

发布时间:2011-06-23 15:57:21 文章来源:www.iduyao.cn 采编人员:星星草
ADO.NET数据库访问入门
ADO.NET数据库访问入门
        .NET程序使用ADO.NET对象访问数据库,因此,要在.net程序中访问数据,需要了解ADO.NET的基本知识。
        ADO.NET是由ADO数据访问模型演变而来的。它提供2种连接数据库的方法,分别是连接式和非连接式的。连接式访问时,应用程序与数据库一直保持连接,而不管有没有数据交换。非连接式访问时,只有当应用程序需要数据时才连接到数据库,数据交换完成后又立刻断开。因此非连接式访问可以减少网络流量(连接远程数据库时),.net推荐使用非连接式的访问。

1.连接式访问方法
先看看下面的流程:
数据库-----Connection对象----Command对象---DataReader对象-----显示数据
Connection对象就是与数据库建立连接的对象,它是首先应该创建的对象,创建Connection对象时,需要给出数据库的路径,名称,用户名和密码(如果有的话)。它可以细分为SqlConnection和OleDbConnection
Command对象就是用来向数据库发出SQL命令的对象。在ADO.NET中有2种Command对象:SqlCommand和OleDbCommand,前者是SQL数据库专用的,后者是通用的。
DataReader对象:用Command对象执行一个SQL命令后就会返回一个DataReader对象,因此查询结果就在DataReader对象里。DataReader对象也分为SqlDataReader和OleDbDataReader,前者是SQL数据库专用的,后者是通用的。

2.非连接式访问方法
先看看下面的流程:
数据库-----Connection对象------DataAdaper对象-----DataSet对象------显示数据
Connection对象:含义与连接式访问方法中相同
DataAdaper对象:类似连接式访问方法中的Command对象,可以发出SQL命令,但是DataAdaper对象的功能更多。并且它也细分为SqlDataAdaper和OleDbDataAdaper
DataSet对象:用DataAdaper对象执行SQL命令后,需要把返回的结果填充到DataSet对象。DataSet对象是在内存中的一块缓冲区,有点像是本地的一个小数据库。DataSet对象可以像数据库一样包含很多表,每个表用DataTable对象表示。


下面以代码示例如何用2种连接方法访问ACCESS数据库:
首先,访问数据库需要引system.Data命名空间,还要根据数据库的类型引用system.Data.OleDb   (普通数据库)或者system.Data.SqlClient   (SQL数据库)命名空间。能举需要可能还应该引用一下命名空间:system.Data.Commom   ,system.Data.SqlTypes
假设一ACCESS数据库,路径为d:\data.mdb   ,其中有表text,包含字段name
连接式访问:
                Dim   a   As   New   OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=d:\data.mdb ")
                '连接到数据库
                a.Open()         '打开数据库

                Dim   b   As   New   OleDbCommand( "select   *   from   [text] ",   a)
                '定义SQL命令.注意OleDbCommand对象对SQL命令的语法检查较为严格,应尽量采用标准写法
                '此处如果写成select   *   from   text   将是错误的

                Dim   c   As   OleDbDataReader   =   b.ExecuteReader
                '   执行SQL命令并把结果返回c   ,如果执行的SQL命令不需要返回记录,请不要定义c,并使用b.ExecuteNonQuery

                'Read命名用来向下移动记录指针,在读取第一条记录前,先要执行一次Read

                While   c.Read
                        'Read命名用来向下移动记录指针
                        '如果指针到了记录末尾,c.Read返回false
                        '注意不要用do...loop循环,否则会出错
                        MessageBox.Show(c( "name ").ToString)
                        '输出记录中的name字段
                End   While
                c.Close()
                a.Close()       '记得关闭连接


非连接式访问:
  Dim   a   As   New   OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=d:\data.mdb ")
                '连接到数据库的信息
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: