以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教怎么正确追加时段参数,书写格式问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=107819)

--  作者:lanbor
--  发布时间:2017/10/10 20:45:00
--  请教怎么正确追加时段参数,书写格式问题
针对 http://www.foxtable.com/mobilehelp/ 网站。
在学习到其中的 “分页显示后台数据” 的时候。
希望在 “订单” 表名称后面跟上条件语句,一直不能正确操作:
原句: cmd.CommandText = "Sel ect *, [数量]*[单价]*(1-[折扣]) As 金额 Fro m (Select Row_Number() Over(Order by [日期]) As RowNum, * Fro m 订单) As a "

修改成:
    y11=2015, m11=5 ‘是来自于输入对话框的值
    Dim dat1 As New Date(y11,m11,1) \'最小日期
    Dim dat2 As New Date(y11,m11,Date.daysinmonth(y11,m11)) \'先获得本年月的最后一天, 再组成一个最大日期

      Dim filter As String = " where 日期 >= #"& dat1 & "# and 日期 <= #"& dat2 & "#" \'生成查询条件
或者  Dim filter As String = " where Year(日期)= " & y11 & " And Month(日期) = " & m11 \'生成查询条件
 cmd.CommandText = "Sel ect *, [数量]*[单价]*(1-[折扣]) As 金额 Fro m (Select Row_Number() Over(Order by [日期]) As RowNum, * Fro m 订单 \'"& filter &"\') As a "
    
以上问题只请教这:filter 的参数如何书写,和主句中的 filter 参数如何书写,我总是报错。
谢谢!

--  作者:有点蓝
--  发布时间:2017/10/10 20:55:00
--  
Dim filter As String = " where 日期 >= \'"& dat1 & "\' and 日期 <= \'"& dat2 & "\'"

Sqlserver日期使用单引号,而不是#号

--  作者:lanbor
--  发布时间:2017/10/10 21:31:00
--  “ where rq01 >= ”附近有语法错误。
把你的原句复制测试,再报以下错误

“ where 日期 >= ”附近有语法错误。
不知是我那里写错了。

再请帮我看看附件中那2条总是语句。
谢谢你!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:page调整.txt


--  作者:有点蓝
--  发布时间:2017/10/10 22:01:00
--  
不要添加多余的空格

Dim filter As String =  " where rq01 >= \'" & dat1 & "\' and rq01 <= \'" & dat2 & "\'"

--  作者:lanbor
--  发布时间:2017/10/10 22:17:00
--  OK了
再次把你的句子复制回去测试,问题照旧。

最后把下面这个句子
 cmd.CommandText = "Sel ect *, [数量]*[单价]*(1-[折扣]) As 金额 Fro m (Select Row_Number() Over(Order by [日期]) As RowNum, * Fro m 订单 \'"& filter &"\') As a "
测试性的变更成为:
 cmd.CommandText = "Sel ect *, [数量]*[单价]*(1-[折扣]) As 金额 Fro m (Select Row_Number() Over(Order by [日期]) As RowNum, * Fro m 订单 "& filter &") As a "
就 OK 了

谢谢”有点蓝“专家指教!
[此贴子已经被作者于2017/10/10 22:17:58编辑过]

--  作者:有点蓝
--  发布时间:2017/10/10 22:33:00
--  
嗯,看漏了