如果知道一个查询结果为空呢

bingxuehuiren 2008-01-17 01:55:04
rst1.open"select * form table1 where id=300"
但是我的数据库里可能没有ID为300的,这样我的查询结果就不存在,如果判断出我的RST1是没有查到结果的.我用RST1.BOF OR RST1.EOF不好用,他总认为这个条件不成立,不管是否能查到数据.我这个判断影响我下步操作,如果没有查询的结果我的RST(0)=RST2(0),如果查询到结果我的RST(0)=RST1(0)-RST2(0),所以这个判断很重要.我也用了EXISTS,可是程序说子程序或函数未定义,请高手指教
...全文
158 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
areswang 2008-01-17
  • 打赏
  • 举报
回复
if RST.EOF = false then

esle

end
bingxuehuiren 2008-01-17
  • 打赏
  • 举报
回复
很奇怪呀,我有两个表,第一个未找到符合条件查询时,用RST.BOF AND RST.EOF就可以判断,第二个表就不,我只好用ISNULL()来判断了,好在只取两个数,我就用ISNULL(RST(0) AND RST(1)),不明白为什么呀
bqb 2008-01-17
  • 打赏
  • 举报
回复
sql = "select   *   form   table1   where   id=300"
rs.Open sql, cn, 1, 3
If rs.RecordCount > 0 Then
MsgBox "存在id=300的记录!", 48, "信息提示"
else
MsgBox "没有id=300的记录!", 48, "信息提示"
End IF
dawugui 2008-01-17
  • 打赏
  • 举报
回复
--以下为PB的写法:
long i
select count(*) into :i form table1 where id = 300;

if i > 0 then
select * form table1 where id = 300;
else
messagebox('系统提示','没有id=300的记录!')
end if
bingxuehuiren 2008-01-17
  • 打赏
  • 举报
回复
哇~~~~我的的确是这样的,我晕死了
sp4 2008-01-17
  • 打赏
  • 举报
回复
RST1.RECORDCOUNT,但是有一个符合条件的数据值为1,没有找到符合条件的记录时值也是1

这不可能啊!

sp4 2008-01-17
  • 打赏
  • 举报
回复
好多年没写VB了,不知道对不对了。感觉陌生了
sp4 2008-01-17
  • 打赏
  • 举报
回复
看出来是VB了

rst1.open "select * form table1 where id=300" ,connection
if rst1 is null then
' ----无记录处理......
else
if not rst1.eof then
' ------ 你的代码
end if
end if




bingxuehuiren 2008-01-17
  • 打赏
  • 举报
回复
补充一下,我是用VB编的,呵
bingxuehuiren 2008-01-17
  • 打赏
  • 举报
回复
不过我找到了RECORDCOUNT,但是有一个符合条件的数据值为1,没有找到符合条件的记录时值也是1.但是当没找到合适记录时MSGBOX RST1(0)时显示,无效调用NULL.这是为什么呀
kk19840210 2008-01-17
  • 打赏
  • 举报
回复
楼主 前台用的什么工具啊
bingxuehuiren 2008-01-17
  • 打赏
  • 举报
回复
好像没有COUNT的属性
bingxuehuiren 2008-01-17
  • 打赏
  • 举报
回复
vb做的
xiaoku 2008-01-17
  • 打赏
  • 举报
回复
rs好像有count的属性的.
青锋-SS 2008-01-17
  • 打赏
  • 举报
回复
没有返回值吗?
pt1314917 2008-01-17
  • 打赏
  • 举报
回复
楼主查询后,先判断该记录集行数是否大于0就可以了。
VB的俺都忘光了。不会写。呵呵。。
wzy_love_sly 2008-01-17
  • 打赏
  • 举报
回复
哦,象net的ExecuteNonQuery就返回所影响的行数
kk19840210 2008-01-17
  • 打赏
  • 举报
回复
f(rs == null ) 可以判断是否查询到记录

rst1.rowcount<=0


具体要看你前台用的什么语言
冷箫轻笛 2008-01-17
  • 打赏
  • 举报
回复
楼主这个问题应该去开发工具那边问吧,呵呵

如果想先判断的话可以考虑
select count(1) from table1 where id = 300
然后判断返回值是否大于0
wzy_love_sly 2008-01-17
  • 打赏
  • 举报
回复
@@rowcount

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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