以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 为什么这个sql语句删除不了数据?(OK) (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=42361) |
-- 作者:zpx_2012 -- 发布时间:2013/11/9 11:13:00 -- 为什么这个sql语句删除不了数据?(OK) 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 -- 发布时间:2013/11/9 11:15:00 -- 把表前面的花括号去掉 |
-- 作者:Bin -- 发布时间:2013/11/9 11:18:00 -- 可以比较,会默认当作 2013-10-22 00:00:00 你先利用Select SQL语句查询使用相同的条件,看看是否可以查询出要删除的数据, 如果可以肯定可以正常删除. 如果没有查询到数据,说明就没有符合条件的数据.
|
-- 作者:longtechwj -- 发布时间:2013/11/9 11:25:00 -- 用剪切板吧,我如果SQL有错误在代码执行的时候将 SQL语句放到剪切板里面然后到查询分析器里面一看 就明白错在哪里了 ClipBoard.SetText("Text") 不过我这种方法,测试的人可能会有点那个,但是 调好之后记得屏蔽掉,要不然人家剪切板里面 出来的是一串串长的SQL语句
|
-- 作者:zpx_2012 -- 发布时间: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 -- 发布时间:2013/11/9 11:48:00 -- 不是,原因还是你之前说得那个,参考我3楼说得,你自然明白了. <= ‘2013-11-08’ 相当于 <= ‘2013-11-08 00:00:00’
|
-- 作者:longtechwj -- 发布时间:2013/11/9 11:49:00 -- 数据格式的问题 |
-- 作者:zpx_2012 -- 发布时间:2013/11/9 11:52:00 -- 明白了,谢谢两位! |
-- 作者:longtechwj -- 发布时间: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编辑过]
|