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 ")
'连接到数据库的信息
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
关于VB.net中的验证控件
小弟正在开发一个C/S结构程序,有几个界面有较多的textbox,是关于用户数据输入的,现在想做验证,听说有验证控...
-
多表查询问题
我有三个表,一个表为基本表,一个是代码表,一个是出差表
表一 编号,姓名 ,职别
001 李三 101
...
-
DATAGRIDVIEW无法删除未提交的新行?
再DATAGRIDVIEW录入时,想删除最后自动新增的一行,提示无法删除未提交的新行
Private Sub Dat...
-
迷茫了几天,求各位高手指教一下!下面是我的代码!
<!--#include file="webconfig.asp"-->
<%
Dim SortID
SortID=Trim(FLib.SafeSql(R...
-
vb.net 断开和连接网络连接 修改代码
在vb.net中实现断开和连接网络连接的代码,我在网上找了一段代码
Option Explicit On
'首...
-
DataGridView直接导出EXCEL
如何直接读取DataGridView中的数据,并导出成Excel可以直接读取的文件
记住,我不要通过DataTable。
希...
-
求教:如何在vb.net下做一些好看的界面,整一些好看的效果,改变控件,让控件变得好看点?
有没有点例子?有没有点直接可以做控件的软件?
---...
-
在VB中,对SQL数据库进行增删改语句怎么写呢?
小弟做课程设计,遇到了一点小麻烦,卡在了这里,不知道在VB中怎么写对SQL数据库的增删改...
-
文本框中的数字精确到小数点后两位
请问如何让文本框输入数字后精确到小数点后两位,如:当输入112时,显示为112.00
------解决方案--...
-
VB.NET2008如何利用SendMessage修改按钮的Text?
为了测试 Windows API ,试图点Button用SendMessage修改该按钮的Text,竟然没成功,请教...