急!求vsFlexGrid 显示问题,我都晕了

ahbbyu 2008-01-06 06:26:51


我的sql存储过程:
CREATE PROCEDURE 商品查询
@bh varchar(80) AS
begin
SELECT *
FROM spb
where 商品编号<@bh
ORDER BY 商品编号
end
GO

我的vb程序:
Dim rs As ADODB.Recordset
Dim icmd As ADODB.Command
Set icmd = New ADODB.Command
With icmd
.ActiveConnection = cn
.CommandType = 4
.CommandText = "商品查询"
.Parameters.Item("@bh").Value = Trim(10003)
End With
Set rs = New ADODB.Recordset
Set rs = icmd.Execute()
vsFlexGrid.VirtualData = False
Set vsFlexGrid.DataSource = rs
vsFlexGrid.Refresh

我的问题是:在不用输入@bh变量时vsFlexGrid可以显示,但是用@bh就只能显示各列名,没有内容,用Debug.Print rs.GetString测试是数据源rs中是有数据的。
请高手们帮帮吧!!
...全文
116 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahbbyu 2008-01-07
  • 打赏
  • 举报
回复
如果不用@bh这个输入变量是可以返回的。
用Debug.Print rs.GetString测试是数据源rs中是有数据的。
如果改成 SELECT *
FROM spb
where 商品编号 <'10003'
就可以正常显示。不知道是怎么回事。
vbman2003 2008-01-07
  • 打赏
  • 举报
回复
你在SQL中测试你的存储过程能返回正确结果吗?

这句改一下数据类型,如下:
Set param = cmd.CreateParameter("@bh", adVarChar, adParamInput, 80, Trim("10003"))

还有长度没必要80吧?
ahbbyu 2008-01-07
  • 打赏
  • 举报
回复
3楼的高手我按你的方法试了,也还是一样了,能显示2个空行,可是还是没有值,
是不是vsFlexGrid控件有什么要设置的呀!
vbman2003 2008-01-06
  • 打赏
  • 举报
回复


Dim rs As ADODB.Recordset
Dim icmd As ADODB.Command
Dim param As ADODB.Parameter

Set icmd = New ADODB.Command
With icmd
.ActiveConnection = cn
.CommandText = "商品查询"
.CommandType = adCmdStoredProc
End With

Set param = cmd.CreateParameter("@bh", adChar, adParamInput, 80, Trim("10003"))
icmd.Parameters.Append param

Set rs = icmd.Execute()
Set vsFlexGrid.DataSource = rs

ahbbyu 2008-01-06
  • 打赏
  • 举报
回复
现在vsFlexGrid能显示2个空行,可是还是没有值
zdingyun 2008-01-06
  • 打赏
  • 举报
回复
.Parameters.Item("@bh").Value = Val(Trim(10003))

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧