通过一个程序来讲解在VB中怎么调用存储过程:
这是初始化界面:
程序代码: 代码中加了注释
数据库连接的代码就自己写吧。呵呵。
Private Sub Command1_Click() ' 一般调用存储过程
Set g_Cmd = New Command
g_Cmd.ActiveConnection = g_Con ' 连接到数据库
g_Cmd.CommandType = adCmdStoredProc ' 表示cmd的类型为存储过程
g_Cmd.CommandText = "Test_1" ' 表示调用哪个存储过程
Set g_Rs = g_Cmd.Execute ' 执行存储过程
If Trim(g_Rs.Fields("sex").Value) = "男" Then
Combo1.ListIndex = 0
Else
Combo1.ListIndex = 1
End If
Text2.Text = g_Rs.Fields("name").Value
Text1.Text = g_Rs.Fields("class").Value
g_Cmd.Cancel
'--Test_1--
'Create Proc Test_1 As
'select * from students
End Sub
Private Sub Command2_Click() ' 带参数调用存储过程
Dim name As String
Set g_Cmd = New Command
g_Cmd.ActiveConnection = g_Con ' 连接到数据库
g_Cmd.CommandType = adCmdStoredProc ' 表示cmd的类型为存储过程
g_Cmd.CommandText = "Test_2" ' 表示调用哪个存储过程
name = Trim(Text2.Text) ' 获得姓名
Set param = g_Cmd.CreateParameter("varin", adVarChar, adParamInput, 50, name)
g_Cmd.Parameters.Append param 'Append将对象添加到该集合
Set g_Rs = g_Cmd.Execute ' 执行存储过程
If Trim(g_Rs.Fields("sex").Value) = "男" Then
Combo1.ListIndex = 0
Else
Combo1.ListIndex = 1
End If
Text1.Text = g_Rs.Fields("class").Value
g_Cmd.Cancel
' Set parameter = command.CreateParameter (Name, Type, Direction, Size, Value)
'
' ·Name 可选(用于多个存储过程),唯一标示调用的存储过程。 如上的 varin 用来标示Test_2
' ·Type 可选,长整型值,指定 Parameter 对象数据类型。
' ·Direction 可选,指定对存储过程的参数执行什么操作。 adParamInput:参数输入。 adParamOutput:参数输出
' ·Size 可选,长整型值,指定参数值最大长度(以字符或字节数为单位)。
' ·Value 可选,adParamInput: 将name的值输入给存储过过程的参数
'
'--Test_2--
'Create Proc Test_2
'@name varchar(20)
'As
'select * from students where name = @name
End Sub
Private Sub Command3_Click()
g_Rs.MoveNext
If Trim(g_Rs.Fields("sex").Value) = "男" Then
Combo1.ListIndex = 0
Else
Combo1.ListIndex = 1
End If
Text2.Text = g_Rs.Fields("name").Value
Text1.Text = g_Rs.Fields("class").Value
End Sub
Private Sub Form_Load()
Combo1.AddItem "男"
Combo1.AddItem "女"
Combo1.ListIndex = 0
End Sub
点击“一般调用存储过程”按钮时执行存储过程Test_1(在代码中注释了存储过程代码):
点击“带参数调用存储过程”按钮是执行存储过程Test_2:
先在姓名文本框中写入姓名“张三”,如:
然后在点击“带参数调用存储过程”按钮,则将“张三”传给存储过程,结果如下:
OK. 希望对你能有帮助。呵呵。
评论
创立于广东省深圳市,位于深圳市宝安区,公司由于业务的拓展,增加了加工的生产线和后焊线,有多
功能机和松下高速SMT贴片机,质量的保证,赢得新老客户的认可。同时本公司承诺,产品在焊接过程
中出现质量问题可以免费返修。
公司秉承“积极进取,不断开拓创新”的经营宗旨,引进先进企业管理,生产设备和生产技术,努力坚
持和实现“诚信经营,创行业品牌”的战略目标,凭借优良的产品品质和完善的服务,赢得了客户的信
任,赢得了市场。
联系方式
何小姐(销售)
Dim cmd As New ADODB.Command
Dim srs As New ADODB.Recordset
Dim strSQL As String
Dim strCon(6) As String
Dim i As Integer
Dim intCount As Integer
intCount = 0
Set cmd.ActiveConnection = conn
cmd.CommandType = adCmdText
cmd.CommandText = strSQL
这是首部
这样改就行了。。
不过存储过程则要改为:
select * from students where name like @name
才行。
不过在存储过程里你可以通过if来判断是调用精确查询还是调用模糊查询。