以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]SQL ExecuteReader求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=115804)

--  作者:Fox86
--  发布时间:2018/3/14 19:33:00
--  [求助]SQL ExecuteReader求助

老师好:问题如下

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C

cmd.CommandText = "S LECT * From {表A} Where ……"  \'表A为空,没有一行数据
dt = cmd.ExecuteReader()

If dt Is Nothing Then
    MessageBox.Show(" ","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
    Return Nothing  \'没有行记录则直接退出返回
End If
dr = dt.DataRows(0)  \'取记录的第一行   此处报错

dr("") = ""

 


图片点击可在新窗口打开查看此主题相关图片如下:000.png
图片点击可在新窗口打开查看

if语句中没有运行,说明dt存在,弹出 类型为4 外部查询表,实际没有数据不是应该不存在吗?到dr = dt.DataRows(0)报错,表为空的情况下应该怎么判断dt和dr呢?


--  作者:czy
--  发布时间:2018/3/14 20:16:00
--  
这样可以的吧

If dt.DataRows.Count = 0 Then
    MessageBox.Show(" ","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)

--  作者:有点甜
--  发布时间:2018/3/14 20:53:00
--  

If dt Is Nothing Then

 

改成

 

If dt.DataRows.Count = 0 Then


--  作者:Fox86
--  发布时间:2018/3/14 21:04:00
--  
楼上老师好,表A没数据dt都存在,那什么情况下dt是不存在的?
--  作者:有点甜
--  发布时间:2018/3/14 21:07:00
--  
以下是引用Fox86在2018/3/14 21:04:00的发言:
楼上老师好,表A没数据dt都存在,那什么情况下dt是不存在的?

 

没有数据而已,为什么表不存在?表是一直都有的,不存在没有表的情况。


--  作者:Fox86
--  发布时间:2018/3/14 21:13:00
--  
有点甜老师,我是参考这个帖子 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=4177&replyID=&skin=1
--  作者:有点甜
--  发布时间:2018/3/14 21:45:00
--  

你这个例子是错的。

 

http://www.foxtable.com/webhelp/scr/1994.htm