正文

[VB]在VB中调用SQL存储过程2006-05-18 14:47:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/fengfei/14286.html

分享到:

通过一个程序来讲解在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. 希望对你能有帮助。呵呵。

 

阅读(8291) | 评论(6)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

评论人: 发布时间: 2010-10-11 22:06:00
深圳市赛兰电子有限公司
创立于广东省深圳市,位于深圳市宝安区,公司由于业务的拓展,增加了加工的生产线和后焊线,有多

功能机和松下高速SMT贴片机,质量的保证,赢得新老客户的认可。同时本公司承诺,产品在焊接过程

中出现质量问题可以免费返修。
公司秉承“积极进取,不断开拓创新”的经营宗旨,引进先进企业管理,生产设备和生产技术,努力坚

持和实现“诚信经营,创行业品牌”的战略目标,凭借优良的产品品质和完善的服务,赢得了客户的信

任,赢得了市场。

联系方式
何小姐(销售)
评论人:华风飞 发布时间: 2006-05-31 15:28:00
在看了
评论人:还是我 发布时间: 2006-05-31 13:31:00
我传不上去了,挺着急问的,麻烦你看一下programfan的vb讨论区我的帖,我叫solosolo,谢谢了!
评论人:solosolo 发布时间: 2006-05-31 13:27:00
图书复合检索的功能,帮忙看一下下:
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
这是首部
评论人:华风飞 发布时间: 2006-05-30 00:40:00
name = "'%" & @name & "%'"     ' & 为连接符
这样改就行了。。
不过存储过程则要改为:
select * from students where name like @name
才行。

不过在存储过程里你可以通过if来判断是调用精确查询还是调用模糊查询。
评论人: 发布时间: 2006-05-30 00:13:00
若要实现 name='% @name %'这种模糊查询,格式如何改呢??
您需要登录后才能评论,请 登录 或者 注册