急求一个VB调用数据库的程序代码!!

如何用Command控件来调用数据库???就是通过输入学号(数据库里的学号)来调用数据库里与此学号有关的其他信息(如:姓名、成绩、住址、性别等等)!!!望:高手指教!!!十分感谢!!!!!

---- VB做为快速应用开发(RAD)工具越来越得到开发人员的认可和接受。它对许多API(如ODBC API、SOCKET API等等)的封装使得编程变得简单起来。同时,它支持集成开发环境下的可视化、事件驱动、面向对象等编程特点。下面,我们谈谈在VB中调用存储过程的实现方法及其注意事项。 ---- 我们知道,VB的数据库编程有许多种方法,比如直接用ODBC API编程,这种方法灵活、高效,程序员可以实现对数据库复杂的控制;也可以用VB中的数据对象,如RDO(远程数据对象)、DAO(数据访问对象)、ADO(ActiveX 数据对象),这种方法实现起来方便、快捷,但灵活性较差一些。由于存储过程在实现数据封装、隐藏以及代码的预编译、减少网络负载、维护方便等优点,所以被许多RDBMS和编程工具做支持。VB中的各类数据对象也提供对存储过程的支持。 ---- 我们以ADO为例来说明其实现的步骤 ---- 1. 创建、调试存储过程。你可以在数据库中也可以在其他外挂程序的支持下进行存储过程的创建和调试工作。本例中的存储过程代码如下(使用PUBS的MS SQL中的例子库 ): CREATE PROCEDURE myprocedure @job_id smallint, @job_lvl tinyint AS SELECT * FROM employee WHERE job_id < @job_id AND job_lvl > @job_lvl ---- 2. 在VB中生成一个新的工程,工程有一窗体,一个COMMAND(NAME:COMMAND1) 按钮,一个 MSFlexGrid(NAME:MSFlexGrid1)控件。 ---- 3. 创建连接ADO connection; ---- 4. 创建命令ADO command; ---- 5. 创建参数并设置各个参数的属性; ---- 6. 执行ADO command; ---- 7. 对数据进行处理;MSFlexGrid显示查询到的数据 ---- 8. 释放连接,退出程序。 ---- 其中代码如下: 在窗体中声明以下变量: Dim cnn1 As ADODB.Connection ‘连接 Dim mycommand As ADODB.Command ‘命令 Dim parm_jobid As ADODB.Parameter ‘参数1 Dim parm_joblvl As ADODB.Parameter ‘参数2 Dim rstByQuery As ADODB.Recordset ‘结果集 Dim strCnn As String ‘连接字符串 在窗体的LOAD事件中加入如下代码: Set cnn1 = New ADODB.Connection ‘生成一个连接 strCnn = "DSN=MYDSN;uid=sa;pwd=" ‘创建的系统数据源MYDSN指向PUBS数据库 cnn1.Open strCnn ‘打开连接 在窗体的UNLOAD中的加入代码如下: cnn1.Close ‘关闭连接 Set cnn1 = Nothing ‘释放连接 在按钮中的代码如下: Dim i As integer Dim j as integer Set parm_jobid = New ADODB.Parameter Set mycommand = New ADODB.Command ' parm_jobid.Name = "name1" this line can be ommited parm_jobid.Type = adInteger ‘
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-25
'本过程从数据库中读取学生数据,存储在相应的变量中,并在List1中显示
'代码略
'定义了一个连接到数据库的对象,它是ADODB.Connection的实例,名称是conn
Dim conn As New ADODB.Connection
conn.ConnectionString = "provider=Microsoft.ACE.OLEDB.12.0;Data source =" & App.Path & "/sj.accdb" '数据库连接
Dim rs As New ADODB.Recordset '定义一个ADODB.recodset类的实例rs
conn.Open '打开数据库ADODB.recodset的实例rs,连接的数据库为conn
rs.ActiveConnection = conn '告诉
rs.Open "select * from sj" '打开记录集,并选择result表中的所有字段
Dim i As Integer
n = 0
Do While Not rs.EOF '“游标”未移动到末尾记录
n = n + 1 '统计记录数
sj(n) = rs.Fields("数据") '可以使用数字表示字段的个数,从0开始
rs.MoveNext '移动到下一条记录
Loop
rs.Close '关闭记录集
conn.Close '关闭数据库本回答被网友采纳
第2个回答  2013-05-21
先连接数据库查询语句select * from 数据表 where 学号=‘?’讲结果导入到其他控件内,或给控件设置数据绑定
第3个回答  2019-04-28
什么意思?如果连接同一个数据库,就不要重复连接了,连接的速度较费时的,检查一下连接对象的state属性是不是adstateopen。或者如果连接对象的实例是在子过程中生成的,那判断一下是不是nothing。
如果连接不同数据库,那给过程传递一个数据库名去,把过程改为函数,并返回连接对象。
相似回答