以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]数据筛选与分页 'Row_Number()错误  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=143945)

--  作者:2900819580
--  发布时间:2019/12/6 19:27:00
--  [求助]数据筛选与分页 'Row_Number()错误

.NET Framework 版本:4.0.30319.18063
Foxtable 版本:2019.11.3.1
错误所在事件:
详细错误信息:
语法错误 (操作符丢失) 在查询表达式 \'Row_Number() Over(Order by 姓名)\' 中。

 

设计好久,没找到原因

 

Dim page As Integer = 0 \'默认page为0,显示第一页
Dim pageRows As Integer = 10 \'每页10行
If e.GetValues.ContainsKey("page") Then  \'如果地址中有page参数
    Integer.TryParse(e.GetValues("page"), page) \'提取page参数
End If
Dim StartRow As Integer = page * pageRows + 1 \'此页第一行
Dim EndRow As Integer = (page + 1) * pageRows \'此页最后一行
\'提取此页数据
Dim cmd As New SQL Command
cmd.Conne cti \'记得设置数据源名称

cmd.Com mandText = "Sele ct * From (Sele ct Row_Number() Over(Order by 姓名) As [NO], 公司,部门,编号,姓名 From 人员表"
If flt > "" Then    cmd.CommandText &= " where " & flt
cmd.CommandText &= ") As a  Where [NO]>= " & StartRow & " And [NO] <= " & EndRow
Dim sdt As DataTable = cmd.ExecuteReader
Dim Count As Integer = sdt.DataRows.Count \'获取总的行数

Return ""
\'合成网页
With wb.AddTable("","Table1")
    .CreateFromDataTable(sdt,False,"","","no","公司","部门","编号","姓名")
End With


--  作者:有点蓝
--  发布时间:2019/12/6 20:33:00
--  
首先SqlServer数据库才能使用Row_Number。

如果是SqlServer,查看一下完整sql
msgbox(cmd.CommandText)

--  作者:2900819580
--  发布时间:2019/12/6 20:49:00
--  

 

老师,如果是Access如何处理,

请指正

[此贴子已经被作者于2019/12/6 20:49:12编辑过]

--  作者:有点蓝
--  发布时间:2019/12/6 21:05:00
--  
只能使用这种方式分页

Dim cmd As New SQLCommand
cmd.ConnectionName = "数据源"
cmd.CommandText = "select * from {表A} where 1=2"
Dim dt As DataTable = cmd.ExecuteReader()
dt.LoadFilter = "加载条件"
dt.LoadTop = "每页行数"
dt.LoadPage = "第几页"
dt.LoadOver = "分页依据"
dt.Load()
[此贴子已经被作者于2019/12/6 21:05:03编辑过]