| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1663 人关注过本帖
标题:新问题,关于VB中使用通配符传参给存储过程
取消只看楼主 加入收藏
zhuluoliye
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2013-7-23
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:6 
新问题,关于VB中使用通配符传参给存储过程
刚接触到VB操作SQL存储过程,已经写好了存储过程,测试了没有错误。但是VB代码部分还是不太熟悉,在使用存储过程查询时出现错误,一时找不到错误出处,还请前辈给指点一二,不甚感激。
程序已经打包,麻烦给看一下,谢谢了
DEMO2.rar (1.29 MB)
搜索更多相关主题的帖子: 通配符 
2013-08-18 18:56
zhuluoliye
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2013-7-23
收藏
得分:0 
回复 2楼 lowxiong
不是全程变量的问题,我已经在form load中写了那几个全程变量,还是要感谢您的解答,谢谢

学习是个过程,贵在坚持
2013-08-20 08:48
zhuluoliye
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2013-7-23
收藏
得分:0 
原先的程序有点问题,我修正了一下,但是之前的问题还是没有解决,希望有高人能帮我解决一下,谢谢了!
DEMO3.rar (1.29 MB)

学习是个过程,贵在坚持
2013-08-20 08:58
zhuluoliye
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2013-7-23
收藏
得分:0 
回复 5楼 Artless
上面的附件DEMO3已经修改过来了,问题还是依旧

学习是个过程,贵在坚持
2013-08-21 17:17
zhuluoliye
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2013-7-23
收藏
得分:0 
我说明一下这个存储过程的作用

启动form1后DataGrid1从数据表friends中加载全部数据
通过combo1、2、3、4选择需要查询的字段,可以全选,也可以全不选,全不选说明查询所有记录,我所想的是使用通配符%查询所有记录

在选定了查询字段后VB执行SQL中的存储过程query_friends,在DataGrid1显示查询的结果

现在的问题就是点击查询后无法显示结果,存储过程query_friends是没有问题的

请高人解答一下,谢谢了!

学习是个过程,贵在坚持
2013-08-21 19:04
zhuluoliye
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2013-7-23
收藏
得分:0 
回复 10楼 lowxiong
我之前也改了一下,也无任何提示错误,DataGrid1字段标题也变成了英文,但是为什么不能显示查询的结果
就像这几个测试的语句,首先将各参数初始化为通配符%,如果查询时选择了combo里面的内容,则查找相应的结果
exec query_friends '%','男','%','%'
exec query_friends '%','%','同事','%'
exec query_friends '%','男','朋友','%'
exec query_friends '%','%','%','%'

我的目的就是将相应的查询结果显示在DataGrid1中
修改后的程序已经上传DEMO4
DEMO4.rar (1.21 MB)

学习是个过程,贵在坚持
2013-08-22 09:10
zhuluoliye
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2013-7-23
收藏
得分:0 
回复 13楼 lowxiong
大师果然奏效,不过还是有点瑕疵,就是默认了性别是男,我改了一下,正好符合我的要求,已经没有问题
Private Sub Command1_Click()
Dim cmd As New Command
Set rs5 = New ADODB.Recordset
cmd.ActiveConnection = conn
conn.CursorLocation = adUseClient
= adCmdStoredProc
= "query_friends"
cmd.Parameters("@qcname") = "%" & Trim(Combo1.Text) & "%"
cmd.Parameters("@qcsex") = "%"
If Trim(Combo2.Text) <> "" Then cmd.Parameters("@qcsex") = Trim(Combo2.Text)
cmd.Parameters("@qcrela") = "%" & Trim(Combo3.Text) & "%"
cmd.Parameters("@qcposs") = "%" & Trim(Combo4.Text) & "%"
Set rs5 = cmd.Execute
Set DataGrid1.DataSource = rs5
Set cmd = Nothing
Set rs5 = Nothing
End Sub



我在form_load里加了combo的第一个值都为空,这样如果不选任何一个combo,查询的就是全部结果


感谢您耐心的解答,严重感谢了!!!

学习是个过程,贵在坚持
2013-08-22 12:35
快速回复:新问题,关于VB中使用通配符传参给存储过程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018576 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved