VB--SQL编程基础教程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

VB.NET数据库编程基础教程罗珊众所周知,VB.NET自身并不具备对数据库进行操作的功能,它对数据库的处理是通过.NETFrameWorkSDK中面向数据库编程的类库和微软的MDAC来实现的。其中,ADO.NET又是.NETFrameWorkSDK中重要的组成部分。要了解VB.NET的数据库编程,首先要明白ADO.NET的工作原理以及相关的对象、方法、属性。本文将结合具体实例为你简单介绍ADO.NET数据库访问对象以及VB.NET数据库编程基本方法。一、ADO.NET数据库访问对象(一)ADO.NET简介ADO.NET是由微软MicrosoftActiveXDataObject(ADO)升级发展而来的。是在.NET中创建分布式数据共享程序的开发接口。ADO.NET的数据存取API提供两种数据访问方式,分别用来识别并处理两种类型的数据源,即SQLServer7.0(及更高的版本)和可以通过OLEDB进行访问的其他数据源。为此ADO.NET中包含了两个类库,System.Data.SQL库可以直接连接到SQLServer的数据,System.Data.ADO库可以用于其他通过OLEDB进行访问的数据源。如Access数据。(二)ADO.NET的名称空间ADO.NET是围绕System.Data基本名称空间设计,其他名称空间都是从System.Data派生而来。它们使得ADO.NET不仅访问DataBase中的数据,而且可以访问支持OLEDB的数据源。当我们讨论ADO.NET时,实际讨论的是System.Data和System.Data.OleDb名称空间。这两个空间的所有类几乎都可以支持所有类型的数据源中的数据。这里我们讨论与后文实例有关的类。即OleDbconnection、OleDbDataAdapter、DataSet和DataView。上面列举的类中没有OleDb前缀的,派生自System.Data空间,有此前缀的派生自System.Data.OleDb空间。在使用中,如果要引用OleDb前缀的类,必须导入System.Data.OleDb名称空间。语法如下:ImportsSystem.Data.OleDb使用没有此前缀的类必须导入System.Data名称空间。语法如下:ImportsSystem.Data1.OleDbConnection类OleDbConnection类提供了一个数据源连接。这个类的构造函数接受一个可选参数,称为连接字符串。(1)连接字符串:连接字符串本身由下表中列出的参数构成。(图)我们来看一下如何在连接字符串上使用参数来初始化一个连接对象。DimobjconnecttionasOleDbConnection=NewOleDbConnection(″Provider=SQLOLEDB;″&″DataSource=localhost;InitialCatalog=pubs;″&″UserID=liuguo;Password=1234;″)上面的连接字符串使用SQLOLEDB提供者访问SQLServer数据库。DataSource参数指定数据库位于本地机器上,InitialCatalog参数表示我们要访问的数据库名称是“pubs”。(2)打开和关闭数据库:一旦用上面的方法初始化了一个连接对象,就可以调用OleDbConnection类的任何方法来操作数据。其中打开与关闭数据库方法是任何操作的基本环节。打开数据库:objConnection.Open()关闭数据库:objConnection.Close()OleDbConnection类的其他方法与属性请查阅相关手册。2.OleDbDataAdapter类OleDbDataAdapter类可以在所有OLEDB数据源中读写数据,并且可以设置为包含要执行的SQL语句或者存储过程名。OleDbDataAdapter类并不真正存储任何数据,而是作为DataSet类和数据库之间的桥梁。(1)SelectCommand属性:要从数据库中读取数据,必须首先设置OleDbDataAdapter类的SelectCommand属性。该属性用来指定选取哪些数据以及如何选取数据。(2)Fill方法:Fill方法用来完成向DataSet对象中填充由OleDbDataAdapter对象从数据库中检索的数据。其语法如下:Fill(DataSet,String)其中,DataSet参数用于指定一个有效的DataSet对象,将用数据进行填充;String参数指定了用于表映射的表名称。(3)DataView类:DataView类一般用于从DataSet类中排序、过滤、查找、编辑和导航数据。与DataSet一样其内部数据使用的是DataTable对象。DataView类是DataTable对象的一个自定义视图。同时DataView中的数据又独立于DataSet中DataTable包含的数据,所以可以对数据进行操作而又不会影响DataSet中的数据。其主要方法与属性如下:Sort方法:对DataView包含的数据进行排序。语法如下:objDataView.Sort=″排序条件″Find方法:在DataView搜索指定的数据行。语法如下:rec=objDataView.Find(″指定条件″)注意:Find方法查找不区分大小写;如果找到一个匹配数据,Find方法将返回其在DataView中记录位置,否则返回-1。有关DataView的其他方法与属性请查阅相关手册。(三)ADO.NET的核心组件ADO.NET的核心组件主要包括:Connections:连接管理数据库事务。Commands:向数据库发送的操作命令。DataReaders:直接读取流数据。DataSets和DataSetCommands:处理内存镜像数据。ADO.NET首先用Connections对象在Web页面和数据库之间建立连接,然后通过Commands向数据库提供者发出操作命令,使操作结果以流数据的形式返回连接。再通过DataReaders快速读取流数据,保存数据到DataSets对象。最后再由DataSetCommands对象对数据进行集中访问和操作。1.Connections对象.NET框架中共提供了两个Connections对象:SQLConnection和ADOConnection。应用Connections对象时,先用Connections对象建立连接,然后调用Open方法来打开连接。通常建立链接时,要提供一些信息,如数据库所在位置、数据库名称、用户账号、密码等相关信息,Connection对象提供了一些常用属性用来进行此类设置。(图)SQLConnection的具体操作方法是:DimmyConnectionasstring=″server=localhost;uid=liuguo;pwd=12345;database=northwind″DimmyConnAsOleDbConnection=NewOleDbConnection(myConnection)ADOConnection的具体操作方法是:DimmyConnectionAsstring=″localhost;uid=liuguo;pwd=12345;Intialcatalog=Northwind;″DimmyConnAsOleDbConnetion=NewOleDbConnection(myConnection)MyConn.Open()2.Commands对象当链接到数据库之后,可以使用Command对象对数据库进行操作,如进行数据添加、删除、修改等操作。一个命令(Command)可以用典型的SQL语句来表达,包括执行选择查询(SelectQuery)来返回记录集,执行行动查询(ActionQuery)来更新(增加、编辑或删除)数据库的记录,或者创建并修改数据库的表结构。当然命令(Command)也可以传递参数并返回值。Command可以被明确的界定,或者调用数据库中的存储过程。DimobjCmdasNewOleDbCommand(″SELECT*Fromusers″,objConn)以上语句建立Command,根据习惯,也可以使用以下方法:DimobjCmdasNewOleDbCommand()objCmd.Connection=objConnobjCmd.CommandText=″SELECT*FROMusers″3.DataReaders对象DataReaders是专门用来读取数据的对象,这个对象除了读数据以外,不能做其他任何数据库操作。DimobjReaderasOleDbDataReaderobjReader=objCmd.ExecuteReaderWhileobjReader.ReadResponse.Write(objReader.GetString(0)&″″=EndWhile4.DataSet对象DataSet是ADO.NET的核心。DataSet是一个存在于内存中的数据库,也就是说它是离线的,并没有同数据库建立即时的连线。在ADO.NET中,DataSet是专门用来处理从数据保存体(DataStore)中读出的数据。不管底层的数据库是SQLServer还是ADO,DataSet的行为都是一致的。可以使用相同的方式来操作从不同数据来源取得的数据。在DataSet中可以包含任意数量的DataTable(数据表),且每个DataTable对应一个数据库的数据表(Table)或视图(View)。一般来说,一个对应DataTable对象的数据表就是一堆数据行(DataRow)与列(DataColumn)的集合。DataTable会负责维护每一笔数据行保留它的初始状态(OriginalState)和当前的状态(CurrentState),以解决多人同时修改数据时引发的冲突问题。DataSet是XML与ADO结合的产物,它的一个重要的特点是与数据库或SQL无关。它只是简单地对数据表进行操作,交换数据或是将数据绑定到用户界面上。如以下这个例子:Dimds1AsNewDataSet()DimdtableAsnewDataTable(″people″)Withdtable.Columns.Add(″FName″,System.Type.GetType(″System.String″)).Add(″LName″,System.Type.GetType(″System.String″)).Add(″UID″,System.Type.GetType(″System.Int32″))EndWithdtable.Columns(″UID″).AutoIncrement=Trueds1.Tables.Add(dtable)dimpkey()asDataColumn={ds1.Tables(″people″).Columns(″UID″)}ds1.Tables(″people″).PrimaryKey=pkey以上语句稍微有点复杂,我们来简单分析一下。前半部分我们建立了一个DataSet和一个叫People的DataTable,然后,我们为这个DataTable加入了三个列并将“UID”列设为自动递增。最后,将这个DataTable加入到了DataSet。最后我们定义一个叫pkey()的主键,将其指向People。二、数据的绑定VB.NET没有自己的类库,它依托的是.NETFrameWorkSDK中的类库,虽然在.NETFrameWrokSDK中并没有提供在VB中的的DbLabel、DbComboBox等数据库组件,但.NETFrameWorkSDK中提供了一种数据绑定技术,可以把打开的数据表中的某个或者某些字段绑定到在命名空间System.Window.Forms中定义的WinForm组件(如TextBox组件、ComboBox组件、Label组件等)中的某些属性上,从而提供这些组件显示出数据表中的记录信息,也就实现了DbTextBox、DbComb

1 / 28
下载文档,编辑使用

©2015-2020 m.111doc.com 三一刀客.

备案号:赣ICP备18015867号-1 客服联系 QQ:2149211541

×
保存成功