上一篇讲到了VB与数据库交互的必备知识,这张从经典实例的方向出发,讲述一些经典的代码。
1,在系统登录的例子中:
a,建立数据库连接,和执行查询命令:
'建立数据库连接
set objcn=new Connection'实例化Connection对象
objcn.ConnectionString = "Provider=Microsoft.jet.OLEDB.3.51;" & _
"Data Source =" & App.Path & "\实例1.mdb" '连接数据库,包括连接方式和数据源路径
objcn.Open
'执行查询命令,获得用户登录口令
strSQL = "select 口令 from 系统用户 where 用户名='" & UserName & "'"
Set objrs.ActiveConnection = objcn
objrs.Open (strSQL)
b,关闭数据库,释放对象:
objcn.Close
Set objrs = Nothing
Set objcn = Nothing
2.在记录浏览例子中:
a,显示当前记录:
txtUserName = objrs.Fields("用户名").Value
txtPassword = objrs.Fields("口令").Value
txtmsg = objrs.AbsolutePosition & "/" & objrs.RecordCount
b ,向前向后翻记录:
objrs.MovePrevious'使前一记录成为当前记录
'如果记录指针指向第一个记录之前,则使其指向第一个记录集。
Ifobjrs.BOF Then objrs.MoveFirst
objrs.MoveNext'使下一记录成为当前记录
If objrs.EOF Thenobjrs.MoveLast
d.更新保存记录:
objrs.Fields("用户名").Value = txtUserName
objrs.Fields("口令").Value = txtPassword
objrs.Update '执行更新操作
3,在数据绑定浏览记录实例中,主要使用了ADO Data控件
这个例子主要是通过ADD Data控件将数据库和VB控件连接起来了,通过ADDData控件的前后按钮,就可以将数据库中数据浏览的很好!
4,在分页显示记录中,
使用了DataGrid控件来显示数据,中间通过一个新的记录集,将分页的数据传到Data Grid 控件上,这样来实现分页显示数据的。
在这里我想说一下datagrid控件和msflexgrid控件的区别:
在分页显示记录中需要显示当前记录页数据,方法一:使用DataGrid控件;DataGrid控件可显示记录集中的全部数据,所以不能直接将分页的记录集绑定到DataGrid控件,需要先将当前记录页中的记录复制到一个新的记录集中,再将其绑定到DataGrid控件,便可显示当前记录也数据。方法二:使用MSFlexGrid控件;其可在设计时将其绑定到Data控件,在运行时,则可通过设置控件的TextMatrix属性来显示数据。MSFlexGrid控件比较灵活因为其有TextMatrix属性(设置和返回控件任意单元格的文本内容),所以在做显示数据时,直接可通过循环在其中填充数据(数据有灵活性,可填充一部分,也可全部填充,所以分页显示效果较容易实现)。
a,创建一个局部recordset对象保存objrs当前记录页数据:
Dim objdatasource As New Recordset
For intRecord = 0 To objrs.Fields.Count - 1
objdatasource.Fields.Append objrs.Fields(intRecord).Name, adVarChar,
objrs.Fields(intRecord).DefinedSize
Next
b,将当前页的记录数据写到objDataSource中:
For intRecord = 1 To objrs.PageSize '将当前记录页中数据写入objdatasource中
objdatasource.AddNew
objdatasource!用户名 = objrs!用户名
objdatasource!口令 = objrs!口令 ' 感叹号“!”常用于当一个控件作为一个特性访问的情况下,
'例如如引用Fomr2中Text1文本框文本属性时,可采用response$=Form2!text1.text语法格式。
objdatasource!身份 = objrs!身份
objrs.MoveNext
If objrs.EOF Then Exit For
Next
5,在数据查询实例中,本例使用了ADO Command对象创建参数查询。
a,创建执行参数查询的Command对象objcmd:
Set objcmd = New Command '创建执行参数查询的command对象objcmd
Set objcmd.ActiveConnection = objcn
With objcmd
.CommandText = "select * from 系统用户 where 用户名 like?" & "and 身份 like?"
.CommandType = adCmdText
End With
b,使用command对象 createparameter创建参数对象,然后将其添加到command对象的parameters集合中。
Dim parm As New Parameter
Set parm = objcmd.CreateParameter("用户名", adVarChar, adParamInput, 10)
objcmd.Parameters.Append parm
Set parm = objcmd.CreateParameter("身份", adVarChar, adParamInput, 10)
objcmd.Parameters.Append parm
c,获得查询参数,执行查询结果:
Dim objrs As New Recordset '定义局部记录集对象
objcmd("用户名") = "%" & txtuser & "%" '获得查询参数,%作用是,取只有包含txtuser字符串的即可
objcmd("身份") = "%" & txtstatus & "%"
Set objrs = objcmd.Execute() '执行查询,获得查询结果记录集
MSFlexGrid1.Cols = objrs.Fields.Count
d,显示列名,和查询结果:
'显示列名
For i = 0 To objrs.Fields.Count - 1
MSFlexGrid1.TextMatrix(0, i) = objrs.Fields(i).Name
Next
'显示查询结果
n = 0
While Not objrs.EOF
MSFlexGrid1.AddItem (objrs.Fields(0) & vbTab & objrs.Fields(1) & vbTab & objrs!身份)
'在这里objrs.fields(0)和objrs!用户名 的效果是相同的
n = n + 1
objrs.MoveNext
Wend
这些代码都是一些经典的实现部分,非常有用,为我们后边的学生信息系统会打下很好的基石!就像我们盖房子一样,这些都是砖瓦泥灰,是我们砌成高楼大厦的基础!
分享到:
相关推荐
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
(2)目前国际最先进的网络GIS—————Google Map其二次开发的关键技术; 7、GM开发实例:如果感兴趣,还可以详细演示说明根据GM机制,自行开发webgis介绍一下基于Google Map这种机制,国内一些主要的软件和网站 8...
我们掌握了数据库及其应用技术、数据库原理、计算机网络技术等课程,对数据库的设计、应用、维护及局域网的组成有了深刻的认识与一定的动手实践能力,考取了信息处理、程序设计、数据库技术等国家IT认证。...
14.2.6 始终置顶——topmost属性 546 14.2.7 附属窗体 546 14.2.8 改变窗体的透明度 547 14.2.9 可视化继承 549 14.2.10 滚动窗体 549 14.2.11 mdi窗体 549 14.2.12 vb 2010中的mdi样例 550 14.2.13 ...
第二部分 核心技术 第4章 作为应用的页面 4.1一种不同类型的MVC 4.1.1 以不同的规模重复MVC模式 4.1.2 在浏览器端应用MVC 4.2 Ajax应用中的视图 4.2.1 将逻辑从视图中分离 4.2.2 保持视图与逻辑的分离 4.3 Aiax应用...
7.2 数据类型、对象、类和实例 303 7.2.1 类的起源 305 7.2.2 类的操作 305 7.2.3 术语 306 7.3 理解类 306 7.3.1 定义类 307 7.3.2 声明类的对象 307 7.3.3 访问类的数据成员 308 7.3.4 类的成员...
VB与VC_环境下基于MapX的二次开发比较.pdf VC++环境下快速可重组测控实验系统的开发.pdf VC6_0与MATLAB7_x混合编程方法研究.pdf VC_6_0和Matlab编程矩阵电路程序.pdf VC_6_0实现客户端与服务器端通讯.pdf VC_6_0实现...
VB与VC_环境下基于MapX的二次开发比较.pdf VC++环境下快速可重组测控实验系统的开发.pdf VC6_0与MATLAB7_x混合编程方法研究.pdf VC_6_0和Matlab编程矩阵电路程序.pdf VC_6_0实现客户端与服务器端通讯.pdf VC_6_0实现...
VB与VC_环境下基于MapX的二次开发比较.pdf VC++环境下快速可重组测控实验系统的开发.pdf VC6_0与MATLAB7_x混合编程方法研究.pdf VC_6_0和Matlab编程矩阵电路程序.pdf VC_6_0实现客户端与服务器端通讯.pdf VC_6_0实现...