Foxtable(狐表)用户栏目专家坐堂 → 为什么这个sql语句删除不了数据?(OK)


  共有5213人关注过本帖树形打印复制链接

主题:为什么这个sql语句删除不了数据?(OK)

帅哥哟,离线,有人找我吗?
zpx_2012
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
为什么这个sql语句删除不了数据?(OK)  发帖心情 Post By:2013/11/9 11:13:00 [只看该作者]

sql server 的外部数据源,按钮代码如下:

Dim Date_S As WinForm.DateTimePicker = e.Form.Controls("date_E")
Dim Date_E As WinForm.DateTimePicker = e.Form.Controls("date_S")
Dim cmd As New SQLCommand
cmd.ConnectionName = Mydata
If Date_S.Value IsNot Nothing AndAlso Date_S.Value IsNot Nothing Then
    Dim count As Integer
    cmd.CommandText = "DELETE FROM {Log} WHERE 修改时间 >= '" & Date_S.value  & "' And 修改时间 <= '" & Date_E.value & "'"
    count = cmd.ExecuteNonQuery()
    Messagebox.Show( "总共删除" & Count & "行!")
End If
里面有数据,但每次执行都是显示删除了0行,也没什么提示。

控件中的日期显示是 2013-10-22 
而sql数据库表中的日期是2013/11/8 14:48:03

是不是这两种格式不能比较?
谢谢!
[此贴子已经被作者于2013-11-9 11:53:49编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
longtechwj
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:659 积分:4686 威望:0 精华:0 注册:2013/6/11 17:51:00
  发帖心情 Post By:2013/11/9 11:15:00 [只看该作者]

把表前面的花括号去掉

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/9 11:18:00 [只看该作者]

可以比较,会默认当作 2013-10-22 00:00:00 

你先利用Select SQL语句查询使用相同的条件,看看是否可以查询出要删除的数据, 如果可以肯定可以正常删除.

如果没有查询到数据,说明就没有符合条件的数据.

 回到顶部
帅哥哟,离线,有人找我吗?
longtechwj
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:659 积分:4686 威望:0 精华:0 注册:2013/6/11 17:51:00
  发帖心情 Post By:2013/11/9 11:25:00 [只看该作者]

用剪切板吧,我如果SQL有错误在代码执行的时候将
SQL语句放到剪切板里面然后到查询分析器里面一看
就明白错在哪里了
ClipBoard.SetText("Text")
不过我这种方法,测试的人可能会有点那个,但是
调好之后记得屏蔽掉,要不然人家剪切板里面
出来的是一串串长的SQL语句

 回到顶部
帅哥哟,离线,有人找我吗?
zpx_2012
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2013/11/9 11:46:00 [只看该作者]

谢谢各位,不好意思,这两个没注意颠倒了。
Dim Date_S As WinForm.DateTimePicker = e.Form.Controls("date_E")
Dim Date_E As WinForm.DateTimePicker = e.Form.Controls("date_S")

但有个奇怪的问题,如果
修改时间 <= ‘2013-11-08’
就查不到2013-11-08那天的数据,必须要输入2013-11-09才能查到,难道<=后面这个=号不起作用? 



 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/9 11:48:00 [只看该作者]

不是,原因还是你之前说得那个,参考我3楼说得,你自然明白了.

 <= ‘2013-11-08’
相当于
 <= ‘2013-11-08 00:00:00’

 回到顶部
帅哥哟,离线,有人找我吗?
longtechwj
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:659 积分:4686 威望:0 精华:0 注册:2013/6/11 17:51:00
  发帖心情 Post By:2013/11/9 11:49:00 [只看该作者]

数据格式的问题

 回到顶部
帅哥哟,离线,有人找我吗?
zpx_2012
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2013/11/9 11:52:00 [只看该作者]

明白了,谢谢两位!

 回到顶部
帅哥哟,离线,有人找我吗?
longtechwj
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:659 积分:4686 威望:0 精华:0 注册:2013/6/11 17:51:00
  发帖心情 Post By:2013/11/9 11:53:00 [只看该作者]

SELECT * FROM prwird WHERE CONVERT(VARCHAR(10),Tran_date,120) BETWEEN '2013-11-08' AND '2013-11-09'
"DELETE FROM Log WHERE convert(varchar(10),修改时间,120) >= '" & Date_S.value  & "' And convert(varchar(10),修改时间,120) <= '" & Date_E.value & "'"
[此贴子已经被作者于2013-11-9 11:54:55编辑过]

 回到顶部