当前位置:文档之家› VB数据库编程实用源码

VB数据库编程实用源码

VB数据库编程实用源码
VB数据库编程实用源码

使用ADO编程模型需添加ADO对象类库的“引用”----“Microsoft ActiveX Data Objects 2.x Library”

ADO之VB数据库操作主要包括读、写、修改及删除等操作,不论是进行什么数据库操作都必须首先连接到数据库。

一、连接到数据库

1、连接到SQL数据库:

通过ADO的Connection对象可实现VB与SQL数据库的连接。一般方法如下:

Dim cnn As New ADODB.Connection …创建Connection对象cnn,关键字new用于创建新对象

cnn.ConnectionString = "Provider=SQLOLEDB.1;Password=密码;User ID=用户名;Initial Catalog=SQL数据库文件;Data Source= localhost;" '指定提供者,设置数据源

cnn.Open …打开到数据库的连接

……..

cnn.Close …关闭到数据库的连接

或者:

Dim cnn As New ADODB.Connection …创建Connection对象cnn,关键字new用于创建新对象

cnn.Open "Provider=SQLOLEDB.1;Password=密码;User ID=用户名;Initial Catalog=SQL数据库文件;Data Source= localhost;" …打开到数据库的连接

……..

cnn.Close …关闭到数据库的连接

2、连接到ACCESS数据库:

通过ADO的Connection对象可实现VB与ACCESS数据库的连接。一般方法如下:

Dim cnn As New ADODB.Connection …创建Connection对象cnn,关键字new用于创建新对象

cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ACCESS数据库文件.MDB" '指定提供者,设置数据源

cnn.Open …打开到数据库的连接

……..

cnn.Close …关闭到数据库的连接

或者:

Dim cnn As New ADODB.Connection …创建Connection对象cnn,关键字new用于创建新对象

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ACCESS数据库文

件.MDB" …打开到数据库的连接

……..

cnn.Close …关闭到数据库的连接

二、读数据库操作

读数据库操作一般可通过recordset对象实现。方法如下—以ACCESS数据库为例:

Dim cnn As New ADODB.Connection …创建Connection对象cnn,关键字new用于创建新对象

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ACCESS数据库文

件.MDB" …打开到数据库的连接

Dim rs As New Recordset '声明一个记录集对象

rs.Open [记录源, cnn, 游标类型, 锁定类型, 命令类型] …也可先设置记录集相关属性

text1.text= rs("字段名称1或索引") …假设读取出来的字段信息显示在文本框中,三种读取方法等价

text2.text=rs.fields("字段名称2或索引")

text3.text= rs!字段名称3

…….

rs.close …关闭记录集对象

cnn.Close …关闭与数据库的连接

set rs=Nothing …释放rs对象实例

set cnn=Nothing …释放Connection对象实例

l 记录源一般为一条SQL查询语句,以实现查询目的。

l Recordset对象还保持查询返回的记录的位置,它返回第一个检索到的记录,并允许你一次一项逐步扫描其他结果。Recordset对象的部分属性及方法如下

Rs(i):读取第i个字段的数据,i从0开始

Rs(字段名):读取指定字段的数据

Rs.EOF:记录指针指到记录的尾部

Rs.BOF:记录指针指到记录的头部

Rs.RecordCount:游标中的数据记录总数

Rs.PageSize:当对象设有分页时,用于指定逻辑页中的记录个数

Rs.PageCount:返回记录集中的逻辑分页数

Rs.MoveNext:将记录指针移到下一个记录

Rs.MovePrev:将记录指针移到上一个记录

Rs.MoveFirst:将记录指针移到第一个记录

Rs.MoveLast:将记录指针移到最后一个记录

rs.Delete:将当前记录删除

rs.addnew:添加一条新记录(行)

l 如果要读取满足条件的数据库记录,只要在SELECT语句中增加WHERE子句即可(例如:WHERE 性别=”男”),如果要读取多条满足条件的数据库记录,可通过循环语句来实现,并且每读取一条记录后使用Rs.MoveNext移动记录指针以读取下一条记录。

三、写数据库操作

方法1:使用recordset对象(此方法一般初学者使用较多)。方法如下—以ACCESS数据库为例:

Dim cnn As New ADODB.Connection …创建Connection对象cnn,关键字new用于创建新对象

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ACCESS数据库文

件.MDB" …打开到数据库的连接

Dim rs As New Recordset '声明一个记录集对象

rs.Open [记录源, cnn, 游标类型, 锁定类型, 命令类型] …也可先设置记录集相关属性

rs.addnew …告诉rs我们要添加一行

rs("字段名称1或索引") =值1 …给要添加的行的一个字段赋值,三种方法等价

rs.fields("字段名称2或索引") =值2

rs!字段名称3 =值3

…….

rs.update …通知rs我们要把这个行写入数据库

rs.close …关闭记录集对象

cnn.Close …关闭与数据库的连接

set rs=Nothing …释放rs对象实例

set cnn=Nothing …释放Connection对象实例

l addnew使用方法后,如果要放弃添加的结果,应调用记录集的CancelUpdate方法放弃。

方法2:使用Connection对象的Execute方法对表进行SQL记录插入操作(要求要熟悉SQL 命令)

Dim cnn As New ADODB.Connection …创建Connection对象cnn,关键字new用于创建新对象

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ACCESS数据库文

件.MDB" …打开到数据库的连接

strSQL = "Insert Into 数据表(字段1, 字段2…..) Values(值1, 值2…..)…拼写Insert插入语句

cnn.Execute strSQL '执行Insert语句实现添加

…….

cnn.Close …关闭与数据库的连接

set cnn=Nothing …释放Connection对象实例

四、修改数据库操作

方法1:使用recordset对象(此方法一般初学者使用较多)。方法如下—以ACCESS数据库为例:

Dim cnn As New ADODB.Connection …创建Connection对象cnn,关键字new用于创建新对象

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ACCESS数据库文

件.MDB" …打开到数据库的连接

Dim rs As New Recordset '声明一个记录集对象

rs.Open [记录源, cnn, 游标类型, 锁定类型, 命令类型] …也可先设置记录集相关属性

…….

rs("字段名称1或索引") =新值1 ……给要修改的行的一个字段赋一个新值,三种方法等价rs.fields("字段名称2或索引") =新值2

rs!字段名称3 =新值3

…….

rs.update …通知rs,我们要把修改好的记录行写入数据库

rs.close …关闭记录集对象

cnn.Close …关闭与数据库的连接

set rs=Nothing …释放rs对象实例

set cnn=Nothing …释放Connection对象实例

l 如果放弃修改结果,应调用记录集的CancelUpdate方法放弃更新数据库。

方法2:使用Connection对象的Execute方法对表进行SQL记录更新操作(要求要熟悉SQL 命令)

Dim cnn As New ADODB.Connection …创建Connection对象cnn,关键字new用于创建新对象

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ACCESS数据库文

件.MDB" …打开到数据库的连接

strSQL = "Update 数据表Set 字段1=新值1, 字段2=新值2….. …拼写Update语句,以便进行修改

cnn.Execute strSQL '执行Insert语句实现添加

…….

cnn.Close …关闭与数据库的连接

set cnn=Nothing …释放Connection对象实例

五、删除数据库操作

方法1:使用recordset对象(此方法一般初学者使用较多)。方法如下—以ACCESS数据库为例方法1:通过

Dim cnn As New ADODB.Connection …创建Connection对象cnn,关键字new用于创建新对象

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ACCESS数据库文

件.MDB" …打开到数据库的连接

Dim rs As New Recordset '声明一个记录集对象

rs.Open [记录源, cnn, 游标类型, 锁定类型, 命令类型] …也可先设置记录集相关属性

…….

rs.Delete …删除当前记录

…….

rs.update …通知rs,我们要把修改好的记录行写入数据库

rs.close …关闭记录集对象

cnn.Close …关闭与数据库的连接

set rs=Nothing …释放rs对象实例

set cnn=Nothing …释放Connection对象实例

l 删除数据库记录前应先找到(查询)待删除的记录项(通过rs.Open来实现)。

方法2:使用Connection对象的Execute方法(要求使用者要熟悉SQL命令)

例如:如果要将数据库“成绩.mdb”中的名字为“学生情况表”的数据表中,学号为'07001'的记录删除,可通过下列方法来实现。

Dim cnn As New ADODB.Connection …创建Connection对象cnn,关键字new用于创建新对象

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ACCESS数据库文

件.MDB" …打开到数据库的连接

sql="delete from学生情况表where 学号='07001'" …拼写delete语句,以便进行删除

cnn.Execute strSQL '执行elete语句实现删除

…….

cnn.Close …关闭与数据库的连接

set cnn=Nothing …释放Connection对象实例

附:分页简介---使用记录集

一、.原理:

分页其实是将数据库中的记录分割成若干段,并将各段记录放在同一个“逻辑页面”上“分屏显示”出来,其实显示的“逻辑页面”只有1页,只是每次显示的页面记录不同罢了。通过控制各页中数据库显示记录的不同,来刷新页面的显示内容。

二、用到的几个记录集属性

rs.pagesize:定义一页显示记录的条数;

rs.recordcount:统计数据库记录总数;

rs.pagecount:统计总页数;

rs.absolutepage:将数据库指针移动到当前页要显示的数据记录的第一条记录;比如有20条记录的一个数据库,我们分为一页显示5条记录,如将AbsolutePage属性设为2,则当前记录指针移至第2页第1条记录,也即将指针移动到第6条记录处,依次类推.... (AbsolutePage 属性是以1 为起始的)

相关主题
文本预览
相关文档 最新文档