以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  系统报错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=19142)

--  作者:小猪鑫鑫
--  发布时间:2012/4/28 16:15:00
--  系统报错

狐爸:我想请问您一个问题

今天我把以前用access做数据源的系统重定向到SQL SERVER中,但是出现了一个问题,就是一个加载按扭,它的代码是

 

Dim d As Date =Date.Today

DataTables("wl请购单").loadfilter ="请购日期 =#" & d & "#"

DataTables("wl请购单").load

即加载当天的请购数据,在access中无论当天有无数据,运行都很正常,但重定向到了SQL SERVER 后,我将代码修改成 

Dim d As Date =Date.Today

DataTables("wl请购单").loadfilter ="请购日期 =\'" & d & "\'"

DataTables("wl请购单").load

 

即将#换成\',运行时,如果当天有数据,它就运行正常,如当天没数据,它就报错

 


图片点击可在新窗口打开查看此主题相关图片如下:未命名.bmp
图片点击可在新窗口打开查看
请您告诉我为什么,并怎么样避免出现报错,谢谢
--  作者:小猪鑫鑫
--  发布时间:2012/4/29 8:42:00
--  

狐爸:我通过增加判断的代码后解决了这个问题,但我不明白,为什么ACCESS中没问题,而SQL中需要增加判断代码,或有没有其它方法可以解决,我新修改的代码如下,此问题已解决,但请告诉我产生的原因,谢谢

 

Dim i As new SQLCommand
Dim dt As DataTable
i.C
i.CommandText ="select * from {wl请购单} where 请购日期 = \'" & Date.today & "\'"
dt =i.ExecuteReader
If dt.DataRows.count >0 Then
    DataTables("wl请购单").loadfilter ="请购日期 =\'" & Date.today & "\'"
    DataTables("wl请购单").load
Else
    messagebox.show("对不起今天还没数据")
End If


--  作者:小猪鑫鑫
--  发布时间:2012/4/29 14:40:00
--  

在线等救命啊,强烈建议狐表公司节假日安排人员值班


--  作者:mr725
--  发布时间:2012/4/29 18:49:00
--  
估计要找盖茨帮的人来解释了, 呵呵,另外:你要是能给三倍的工资也许会有人值班的啦···
--  作者:布莱克朱
--  发布时间:2012/5/1 9:44:00
--  
按道理不应该呀,SQL时间的判断就是这样的,我用的一直挺好的呀.
--  作者:小猪鑫鑫
--  发布时间:2012/5/1 15:27:00
--  
谢谢楼上:SQL我刚接触,从ACCESS刚一转过去就出现了这个问题,但一用回ACCESS又一切正常,在用SQL SERVER时,只要数据源中没数据就会出现同样的提示(所有表都是),真不知道什么问题?
--  作者:狐狸爸爸
--  发布时间:2012/5/2 8:51:00
--  

这个我也不能理解,有空我再测试看看。

不过你判断行数的方法太恐怖了,应该:

 

Dim i As new SQLCommand
i.Connection Name = "数据源名称"
i.CommandText ="select Count(*) from {wl请购单} where 请购日期 = \'" & Date.today & "\'"
If i.ExecuteScalar >0 Then
    DataTables("wl请购单").loadfilter ="请购日期 =\'" & Date.today & "\'"
    DataTables("wl请购单").load
Else
    messagebox.show("对不起今天还没数据")
End If


--  作者:小猪鑫鑫
--  发布时间:2012/5/2 11:34:00
--  

谢谢狐爸的答复,虽然没有解决问题,但还是学会了判断是否有数据的方法,这也不错!

但还是请狐爸再查查,我现在发现不但是有这个问题,还有一些以前能用的按扭,现在也不能正常使用了,我们公司现在使用的是2005版的SQL SERVER,是否还需要安装其它什么东东(因我刚买来开发版时,也出现了不能正常使用的情况,后来重新更新了一个什么东东以后,才能正常使用)