当前位置:文档之家› VBNET数据库编程基础教程

VBNET数据库编程基础教程

VBNET数据库编程基础教程众所周知,自身并不具备对数据库进行操作的功能,它对数据库的处理是通过.NET FrameWork SDK中面向数据库编程的类库和微软的MDAC来实现的。

其中,又是.NET FrameWork SDK中重要的组成部分。

要了解的数据库编程,首先要明白的工作原理以及相关的对象、方法、属性。

本文将结合具体实例为你简单介绍数据库访问对象以及数据库编程基本方法。

一、数据库访问对象(一)简介是由微软Microsoft ActiveX Data Object(ADO)升级发展而来的。

是在.NET中创建分布式数据共享程序的开发接口。

的数据存取API提供两种数据访问方式,分别用来识别并处理两种类型的数据源,即SQL Server 7.0(及更高的版本)和可以通过OLE DB进行访问的其他数据源。

为此ADO.NE T中包含了两个类库,System.Data.SQL库可以直接连接到SQL Server的数据,System.Data.ADO库可以用于其他通过OLE DB进行访问的数据源。

如Acces s数据。

(二)的名称空间是围绕System.Data基本名称空间设计,其他名称空间都是从Syste m.Data派生而来。

它们使得不仅访问DataBase中的数据,而且可以访问支持OLE DB的数据源。

当我们讨论时,实际讨论的是System.Data和System.Data.OleDb 名称空间。

这两个空间的所有类几乎都可以支持所有类型的数据源中的数据。

这里我们讨论与后文实例有关的类。

即OleDbconnection、OleDbDataAdapter、D ataSet和DataView。

上面列举的类中没有OleDb前缀的,派生自System.Data空间,有此前缀的派生自System.Data.OleDb空间。

在使用中,如果要引用OleDb前缀的类,必须导入System.Data.OleDb名称空间。

语法如下:Imports System.Data.OleDb使用没有此前缀的类必须导入System.Data名称空间。

语法如下:Imports System.Data1.OleDbConnection类OleDbConnection类提供了一个数据源连接。

这个类的构造函数接受一个可选参数,称为连接字符串。

(1)连接字符串:连接字符串本身由下表中列出的参数构成。

(图)我们来看一下如何在连接字符串上使用参数来初始化一个连接对象。

Dim objconnecttion as OleDbConnection=New OleDbConnection(″Provider =SQLOLE DB;″&″DataSource=localhost;Initial Catalog=pubs;″&″UserID=liugu o;Password=1234;″)上面的连接字符串使用SQLOLEDB提供者访问SQL Server数据库。

Data So urce参数指定数据库位于本地机器上,Initial Catalog参数表示我们要访问的数据库名称是“pubs”。

(2)打开和关闭数据库:一旦用上面的方法初始化了一个连接对象,就可以调用OleDbConnection类的任何方法来操作数据。

其中打开与关闭数据库方法是任何操作的基本环节。

打开数据库:objConnection.Open()关闭数据库:objConnection.Close()OleDbConnection类的其他方法与属性请查阅相关手册。

2.OleDbDataAdapter类OleDbDataAdapter类可以在所有OLE DB数据源中读写数据,并且可以设置为包含要执行的SQL语句或者存储过程名。

OleDbDataAdapter类并不真正存储任何数据,而是作为DataSet类和数据库之间的桥梁。

(1)SelectCommand属性:要从数据库中读取数据,必须首先设置OleDbDataAdapter类的SelectComma nd属性。

该属性用来指定选取哪些数据以及如何选取数据。

(2)Fill方法:Fill方法用来完成向DataSet对象中填充由OleDbDataAdapter对象从数据库中检索的数据。

其语法如下:Fill(DataSet,String)其中,DataSet参数用于指定一个有效的DataSet对象,将用数据进行填充;S tring参数指定了用于表映射的表名称。

(3)DataView类:DataView类一般用于从DataSet类中排序、过滤、查找、编辑和导航数据。

与DataSet一样其内部数据使用的是DataTable对象。

DataView类是DataTabl e对象的一个自定义视图。

同时DataView中的数据又独立于DataSet中DataT able包含的数据,所以可以对数据进行操作而又不会影响DataSet中的数据。

其主要方法与属性如下:Sort方法:对DataView包含的数据进行排序。

语法如下:objDataView.Sort = ″排序条件″Find方法:在DataView搜索指定的数据行。

语法如下:rec=objDataView.Find(″指定条件″)注意:Find方法查找不区分大小写;如果找到一个匹配数据,Find方法将返回其在DataView中记录位置,否则返回-1。

有关DataView的其他方法与属性请查阅相关手册。

(三)的核心组件的核心组件主要包括:Connections:连接管理数据库事务。

Commands:向数据库发送的操作命令。

DataReaders:直接读取流数据。

DataSets和DataSetCommands:处理内存镜像数据。

首先用Connections对象在Web页面和数据库之间建立连接,然后通过Commands向数据库提供者发出操作命令,使操作结果以流数据的形式返回连接。

再通过DataReaders快速读取流数据,保存数据到DataSets对象。

最后再由DataSetCommands对象对数据进行集中访问和操作。

1.Connections对象.NET框架中共提供了两个Connections对象:SQLConnection和ADOConnec tion。

应用Connections对象时,先用Connections对象建立连接,然后调用O pen方法来打开连接。

通常建立链接时,要提供一些信息,如数据库所在位置、数据库名称、用户账号、密码等相关信息,Connection对象提供了一些常用属性用来进行此类设置。

(图)SQLConnection的具体操作方法是:Dim myConnection as string = ″server=localhost;uid=liuguo;pwd=12345;dat abase=northwind″Dim myConn As OleDbConnection = New OleDbConnection(myConnectio n)ADOConnection的具体操作方法是:Dim myConnection As string =″localhost;uid=liuguo;pwd=12345;Intial cat alog=Northwind;″Dim myConn As OleDbConnetion = New OleDbConnection(myConnection)MyConn.Open()mands对象当链接到数据库之后,可以使用Command对象对数据库进行操作,如进行数据添加、删除、修改等操作。

一个命令(Command)可以用典型的SQL语句来表达,包括执行选择查询(Select Query)来返回记录集,执行行动查询(Action Qu ery)来更新(增加、编辑或删除)数据库的记录,或者创建并修改数据库的表结构。

当然命令(Command)也可以传递参数并返回值。

Command可以被明确的界定,或者调用数据库中的存储过程。

Dim objCmd as New OleDbCommand(″SELECT * From users″, objConn)以上语句建立Command,根据习惯,也可以使用以下方法:Dim objCmd as New OleDbCommand()objCmd.Connection = objConnmandText = ″SELECT * FROM users″3.DataReaders对象DataReaders是专门用来读取数据的对象,这个对象除了读数据以外,不能做其他任何数据库操作。

Dim objReader as OleDbDataReaderobjReader = objCmd.ExecuteReaderWhile objReader.ReadResponse.Write(objReader.GetString(0) & ″″=End While4.DataSet对象DataSet是的核心。

DataSet是一个存在于内存中的数据库,也就是说它是离线的,并没有同数据库建立即时的连线。

在中,DataSet是专门用来处理从数据保存体(Data Store)中读出的数据。

不管底层的数据库是SQL Server还是ADO,DataSet的行为都是一致的。

可以使用相同的方式来操作从不同数据来源取得的数据。

在DataSet中可以包含任意数量的DataTable(数据表),且每个DataTable对应一个数据库的数据表(Table)或视图(View)。

一般来说,一个对应DataTable对象的数据表就是一堆数据行(DataRow)与列(DataColumn)的集合。

DataTable 会负责维护每一笔数据行保留它的初始状态(Original State)和当前的状态(Curr ent State),以解决多人同时修改数据时引发的冲突问题。

DataSet是XML与ADO结合的产物,它的一个重要的特点是与数据库或SQL 无关。

它只是简单地对数据表进行操作,交换数据或是将数据绑定到用户界面上。

如以下这个例子:Dim ds1 As New DataSet()Dim dtable As new DataTable(″people″)With dtable.Columns.Add(″FName″, System.Type.GetType(″System.String″)).Add(″LName″, System.Type.GetType(″System.String″)).Add(″UID″, System.Type.GetType(″System.Int32″))End Withdtable.Columns(″UID″).AutoIncrement = Trueds1.Tables.Add(dtable)dim pkey() as DataColumn = {ds1.Tables(″people″).Columns(″UID″)}ds1.Tables(″people″).PrimaryKey = pkey以上语句稍微有点复杂,我们来简单分析一下。

相关主题