---- 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 ADODBConnection ‘连接 Dim mycommand As ADODBCommand ‘命令 Dim parm_jobid As ADODBParameter ‘参数1 Dim parm_joblvl As ADODBParameter ‘参数2 Dim rstByQuery As ADODBRecordset ‘结果集 Dim strCnn As String ‘连接字符串 在窗体的LOAD事件中加入如下代码: Set cnn1 = New ADODBConnection ‘生成一个连接 strCnn = "DSN=MYDSN;uid=sa;pwd=" ‘创建的系统数据源MYDSN指向PUBS数据库 cnn1Open strCnn ‘打开连接 在窗体的UNLOAD中的加入代码如下: cnn1Close ‘关闭连接 Set cnn1 = Nothing ‘释放连接 在按钮中的代码如下: Dim i As integer Dim j as integer Set parm_jobid = New ADODBParameter Set mycommand = New ADODBCommand ' parm_jobidName = "name1" this line can be ommited parm_jobidType = adInteger ‘
VB access,添加/删除/修改记录代码 给你一个示例,这个是用户登录系统
'准备工作: 数据库 D:\Mydbmdb 数据库中,建数据表:UserInfo,数据表中,建字段:User,Password,并添加一条记录
'点工程->引用 选中 Microsoft Activex Data Objects 21 Library
'控件:添加一个文本框,一个命令按钮
Private Sub Command1_Click()
Dim s As String
Dim Conn As New ADODBConnection
Dim Rs As New ADODBRecordset
ConnOpen "Provider=MicrosoftJetOLEDB40;Data Source=D:\mydbmdb"
'请将数据库名及路径换成你的实际数据库名及路径
Dim UserName As String
Dim Password As String
s = Text1Text
If s = "1" Or s = "2" Then
UserName = InputBox("请输入用户名")
Password = InputBox("请输入用户密码")
sql = "Select From [UserInfo] where User='" & UserName & "'"
'UserInfo请换成你的实际数据表名
RsOpen sql, Conn, 1, 3
If RsEOF Then
MsgBox "没有找到此用户"
Else
If Rs("Password") = Password Then
If s = "1" Then
MsgBox "123"
ElseIf s = "2" Then
MsgBox "456"
End If
Else
MsgBox "密码错误"
End If
End If
End If
End Sub
上面的例子实现了查询
如果是要添加,删除,更新等 *** 作,只要编写相应的SQL语句,再用
ConnExecute SQL 就可以了,如:
添加的:
SQL="Insert Into [UserInfo](User,Password) Values('aaaa','1234')"
ConnExecute SQL '执行后,就添加了一条记录
删除:
SQL="Delete From [UserInfo] Where User='aaaa'"
ConnExecute SQL '删除用户名为aaaa的用户记录
更新:
SQL="Update [UserInfo] Set Password='abcdefg' Where User='aaaa'"
ConnExecute SQL '执行后,修改用户aaaa的密码为abcdefg
以上只是示例,在实际使用过程中,可以将一些内容用控件输入等方式进行,这样就有很大的灵活性了
动态创建数据库
引用 microsoft DAP 36 Object Library
Dim myDB As DAODatabase
Set myDB = CreateDatabase(AppPath + "\111mdb", dbLangGeneral) '如果不存在数据库
Set myDB = OpenDatabase(AppPath + "\111mdb") '如果存在数据库
Dim str_SQL As String
str_SQL = "Create Table NewTable1(Field1 Text(10),Field2 Short)"
myDBExecute str_SQL
str_SQL = "Create Table NewTable2(Field1 Text(10),Field2 Short)"
myDBExecute str_SQL
myDBClose
向已经建好的数据库中添加记录
建立数据库a,表名字b,字段c,文本格式,在窗体上画一command ,画一个文本框,这个代码就是将文本内容写入数据库
要先引用microsoft activeX data object 25 library
代码如下:
Private Sub Command1_Click()
Dim cnDk As New ADODBConnection
Dim strDk As String
Dim rDk As New ADODBRecordset
Dim sql As String
strDk = "DBQ=" & AppPath & "\amdb;Driver={Microsoft Access Driver (mdb)};"
cnDkOpen strDk
sql = "insert into b (c) values ('" & text1text& "')"
cnDkExecute sql
cnDkClose
Set cnDk = Nothing
End Sub
在数据库中添加多条记录
只要可以进行输入文本的都可以
改一下这些吧,你单击一次就提示输入一次,输完了自动保存
改后
Data1RecordsetAddNew
Data1RecordsetFields("username") = trim(inputbox("请输入名字"))
Data1Recordset("password") =val(trim(inputbox("请输入电话")))
Data1UpdateRecord
——————————————————————————————
Data1RecordsetAddNew
Data1RecordsetFields("username") = "张三|"
Data1Recordset("password") = "fsdfsd"
Data1UpdateRecord
Data1RecordsetAddNew
Data1RecordsetFields("username") = "李四|"
Data1Recordset("password") = "fsdf432d"
Data1UpdateRecord
Data1RecordsetAddNew
Data1RecordsetFields("username") = "王五|"
Data1Recordset("password") = "f42342d"
Data1UpdateRecord
MsgBox "adad"
========================================================================================
vb+access 数据库的记录的添加与删除
Dim cn As New ADODBConnection
Dim rs As New ADODBRecordset
Private Sub Command2_Click()
Set rs = cnExecute("select from wenzhang where 内容='" & Text1Text & "'")
If Text1Text = "" Then
MsgBox ("文章不能为空!")
ElseIf rsEOF = False Then
MsgBox ("文章不能重复!")
Else
cnExecute ("insert into wenzhang values('" & Combo1Text & "','" & Text3Text & "','" & Text4Text & "','" &
Text1Text & "')")
MsgBox ("ok")
End If
End Sub
'添加按钮
Private Sub Command3_Click()
Dim myval As String
Set rs = cnExecute("select from wenzhang where 内容='" & Text1Text & "'")
If rsEOF Then
myval = MsgBox("是否保存文章?", vbInformation + vbYesNoCancel, "提示")
If myval = vbYes Then
cnExecute ("insert into wenzhang values('" & Combo1Text & "','" & Text3Text & "','" & Text4Text & "','" &
Text1Text & "')")
MsgBox ("保存成功")
Else
Combo1Text = ""
End If
Else
Text1Text = ""
Combo1Text = ""
End If
End Sub
'删除按钮
Private Sub Command4_Click()
If Text1Text = "" Then
MsgBox ("不能删除空记录!")
Else
Dim myval As String
myval = MsgBox("是否删除文章?", vbInformation + vbYesNo, "提示")
If myval = vbYes Then
Set rs = cnExecute("delete from wenzhang where 内容 ='" & Text1Text & "'")
MsgBox ("删除成功!")
End If
End If
End Sub
'连接数据库
Private Sub Form_Load()
cnConnectionString = "Provider=MicrosoftJetOLEDB40;Data Source=\vbnet\tempmdb;Persist Security Info=False"
cnCursorLocation = adUseClient
cnOpen
End Sub
方法1,
建立一个模块
将工程的启动设置为 SUB MAIN
在模块里写下面代码
Public db As Database
Public rs As Recordset
Sub main()
set db=dbopendatabase("数据库路径"<建议用相对路径--就是把数据库文件和工程文件放在同一目录下--相对路径就是APPPATH+"数据库名带后缀">)
第一启动窗体<比如:form1>show
end sub
以后在其他窗体中如果要调用数据库只用在窗体中写代码
set rs=openrecordset(<可以是数据库的表--如"student",也可以是查询语句--如"select form student">)
这时数据库的内容都存在FILE集合里
比方说set rs=openrecordset("select form student")
rsfile(0)就是SQL语句查询结果的第一列
rsfiles就是整个结果
使用text1text=rsfile(0)就可以把文本框于查询结果帮定起来
如果要对数据库进行修这时用以下代码:
dbExecute (<SQL语句--如"insert into student(sno,sname) value("","")">)
方法2,
工程--部件--选择microsoft data bound grid control 50
然后在窗体中添加左边工具栏的 DATA 和DBGRID 控件
选择DBGRID 将属性DATASOURCE 设置为DATA控件的名字(如DATA1)
然后选择DATA 将属性CONNECT设置为ACCESSS 2000
设置DATABASENAME 选择数据库的存放路径
最后设置RECORDSET 为需要连接的表的名字
运行就可以看到 DATAGRID中显示了数据库的信息
本人从来没有使用ADO对象实现过创建数据库的方法。
以前要采用代码创建数据库都是使用Microsoft的DBEngine对象。
使用ADO只进行过数据的 *** 作,最多用来进行用户的管理。
希望那位高手能解决这个问题,本人拜读一下。
关于VB6 + Access的简单数据库应用问题
最近,经常看到有人提问相关问题,心血来潮有一股冲动,把这个方面的应用在这里介绍一下。
我使用过的VB6提供的数据库连接控件有两个,一个是Data控件另一个是Adodc控件。
考虑到Data控件只能针对本地数据库的开发应用,并且它只支持VB5中的网格控件DBGrid控件,所以这里主要介绍Adodc控件。(注意:VB5的DBGrid控件,需要把DBGRID32OCX文件复制到c:\windows\system32\DBGRID32OCX进行引用)
下面介绍使用Adodc控件与DataGrid控件进行简易数据库的应用:
一.添加Adodc控件与DataGrid控件:
因为这两个控件默认状态下都不在“控件工具箱”内,所以需要手动添加到“控件工具箱”内。
1.添加Adodc控件:
在VB6里,通过菜单来添加该控件,方法:[工程] -- [部件],出现“部件”对话框,在“控件”选项卡里,通过滚动条,找到并勾选:Microsoft Ado Data Control 60 (SP6) (OLEDB),然后单击[确定],这样该控件图标就出现在“控件工具箱”里了,你可以像使用其它你熟悉的控件一样,添加到窗体上。
2.添加DataGrid控件:
方法与过程与添加Adodc控件过场相似,勾选的是:Microsoft DataGrid Control 60 (SP6) (OLEDB)。
二.连接数据:
为了说明,假设你有数据库文件“数据库Mdb”,在里边有数据表“学生基本信息”和“学生成绩”。
“学生基本信息”有字段:学号、姓名、性别(都是字符类型)
“学生成绩”有字段:学号、语文、数学、英语(学号字符类型,其它数值类型)
假设你添加的控件为:Adodc1和DataGrid。
1.先将Adodc1控件连接到数据库文件:(有两种方法)
方法1:设置Adodc1的ConnectionString属性,在属性窗口点带有省略号的按钮…选[生成] -- 选Microsoft Jet 40 OLE DB Privider -- [下一步]--单击省略号按钮,定位到你保存“数据库MDB”的位置,选中该数据库,单击[打开],连接成功了,可以测试一下。回到窗体,你会看到Adodc1的ConnectionString 属性里的一大串内容。
方法2:也可以用命令直接设置连接,在运行时通过执行该命令来完成连接,命令如下:
Adodc1ConnectionString = "Provider=MicrosoftJetOLEDB40;Data Source=C:\Program Files\Microsoft Visual Studio\VB98\ADODC控件实例\数据库mdb;Persist Security Info=False",值得说明以下,这个双引号里的内容,是我的实际情况,因为我在VB98文件夹里,建立了子文件夹“\ADODC控件实例”,并把使用的数据库文件复制到该文件夹里了。这里引号里的一大串内容,你可以从刚在属性窗口里直接复制过来,然后做一些改动,要注意这个改动往往是必要的也是非常关键的,因为考虑到一般情况,你的应用程序不可能安装到“\VB98”这个文件夹,所以一般的改动如下:
将“Source=C:\Program Files\Microsoft Visual Studio\VB98\ADODC控件实例\数据库mdb”改为“Source=" & AppPath & "\数据库mdb”即完整的情况如下:
Adodc1ConnectionString = "Provider=MicrosoftJetOLEDB40;Data Source=" & AppPath & "\数据库mdb;Persist Security Info=False"
接下来连接到数据表“学生基本信息”:
方法1:设置Adodc1的RecordSource 属性,在属性窗口点带有省略号的按钮,在“命令类型”里,选:2 – adCmdTable,在"表或存储过程名称"里,选“学生基本信息”,单击确定,你会看到ADODC1的RecordSource 属性栏里是“学生基本信息”。
方法2:也可以用命令直接设置连接:
Adodc1RecordSource = "学生基本信息"
至此,完成了ADODC1控件与数据库的连接。
三.将DataGrid1绑定到ADODC1控件:
选中窗体上的DataGrid1,设置其DataSource 属性,点右边的下拉按钮,选ADODC1,完成绑定。
设置DataGrid1显示内容与模式,右击窗体上的DataGrid1控件,选"检索字段",选[Y],完成。
至此,你启动窗体,就可以在DataGrid1控件里看到效果了。
可以右击窗体上的DataGrid1控件,选“属性”,进一步作设置,比如:“允许添加”、“允许删除”。
四.常用 *** 作数据库的命令:
1.刷新记录集:
Adodc1ConnectionString = "Provider=MicrosoftJetOLEDB40;Data Source=" & AppPath & "\数据库mdb;Persist Security Info=False" ‘连接数据库文件
Adodc1RecordSource = "学生基本信息" ‘连接数据表
Adodc1Refresh ‘刷新记录集,这个不能漏
2.移动记录:
Adodc1RecordsetMoveFirst ‘记录指针移动到第1条记录
Adodc1RecordsetMoveNext ‘记录指针移动到下1条记录
Adodc1RecordsetMoveLast ‘记录指针移动到最后1条记录
Adodc1RecordsetMovePrevious 记录指针移动到前1条记录
注意:上面执行Adodc1Refresh后,如果数据表非空,就自动将记录指针指向第1条记录。
3.编辑更新数据:
首先将记录移动到需要编辑更新的记录,当然在DataGrid1里可以直观地进行修改编辑,也可以用命令;
Adodc1RecordsetFields ("姓名") = “王伟” ‘用“王伟”更新当前记录的“姓名”字段
Adodc1RecordsetUpdate ‘执行更新,注意这一步不能漏
当然,你可以对某条记录的若干个字段进行更新后,再一次进行Update
4.添加记录:
Adodc1RecordsetAddNew ‘在数据表的末尾添加一条空记录(所有字段为空)
说明:如果用命令要增加一条记录信息,通常:
1)先用AddNew
2)然后用:
For i = 0 To Adodc1RecordsetFieldsCount - 1
Adodc1RecordsetFields(i) = 内容i
Next i
3)最后用:Adodc1RecordsetUpdate
5.删除记录:
首先移动到你要删除那条记录,然后执行:Adodc1RecordsetDelete
五.关于SQL语句在连接数据表时的一些基本用法:
前面介绍用Adodc控件连接好数据库文件后,要设置其RecordSource来连接数据表,即:Adodc1RecordSource = "学生基本信息"
其实RecordSource属性,可以使用SQL语法,常用Select语句格式如下:
Select 字段列表 From 数据表名 [Where …] [Order By …]
其中:
字段列表– 是指返回的记录,包含哪些字段,字段名之间用逗号分隔
数据表名 -- 是指从哪个数据表返回信息
例如1:
Adodc1RecordSource = "Select 学号,姓名 From 学生基本信息"
例如2:
Adodc1RecordSource = "Select From 学生基本信息"
例2的结果与Adodc1RecordSource = "学生基本信息"相同。其中“”表示所有字段。
Where子句– 根据条件筛选记录
Order By 子句– 设置排序
例如3:
Adodc1RecordSource = "Select From 学生基本信息 Where 性别=’女’"
仅返回女生记录。
例如4:
Adodc1RecordSource = "Select From 学生基本信息 Where 学号>’300’ And性别=’男’"
仅返回学号大于“300”的男生记录。
例如5:
Adodc1RecordSource = "Select From 学生基本信息 Order By 学号"
按照学号从小到大(升序)的次序,返回记录。
例如6:
Adodc1RecordSource = "Select From 学生基本信息 Order By 学号/D"
按照学号从大到小(降序)的次序,返回记录。
注意:/D表示从大到小,/A表示从小到大,/A是缺省表示。
关于SQL语法,可以到以下网址查询并运用,非常有价值:
>
以上就是关于急求一个VB调用数据库的程序代码!!全部的内容,包括:急求一个VB调用数据库的程序代码!!、请朋友帮忙:VB2008 *** 作Access数据库。完成连接、添加、修改、删除、读某个列值至变量等完整的代码示例谢、在VB中,怎样对SQL数据库里面的数据进行 *** 作等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)