以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 请教,关于SQL查询表的分页的问题【已解决】 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=28970) |
-- 作者:even0898 -- 发布时间:2013/2/24 11:05:00 -- 请教,关于SQL查询表的分页的问题【已解决】 在窗体中建立了一个SQLQuery型的table,然后在窗体的afterload事件里用FILL的方法从两张表里取数据生成查询数据 我想用按钮做分页控制(首页,上一页,下一页,总行数),另外用一个lable来显示这张查询表的总行数和总页数,这个要如何做呢?给个思路就好 我现在的做法是先FILL,然后用table.datatable来loadTOP等分页,但是只能显示第一页的数据,正确合理的方式应该是怎么样呢?以下是我的代码
Dim i As Integer =Tables("测试_table1").DataTable.DataRows.Count 页数和数据行数都显示不对.. ================================================================== 感谢小林的指导,问题得到解决,因为目前FOX还不支持查询表的分页,只有曲线救国,高手就路过当看个笑话好了,一直索取,贡献一下如我一样没有任何程序基础又在苦苦学习FOX的人... 解决思路: 在SQL数据库里建立一个表视图,视图名为“供应商查询”,表视图的建立请百度..值得注意的是建立连接字段的时候,如果是用FOX建立的外部表的话,会自动把_Identify设置为连接字段,想修改的话要把主表的连接字段拖动到子表去(这里我卡了一中午,汗!) 后续代码如下:
Tables("测试_table1").DataTable.fill("Select * From {供应商查询表}","ERP",True)
上下页控制的话,i的值还是要用要用sqlcommand的命令去取得,我这个是在afterload里写的,就没改了 OVER [此贴子已经被作者于2013-2-25 13:39:35编辑过]
|
-- 作者:even0898 -- 发布时间:2013/2/24 12:37:00 -- 顶起... |
-- 作者:lin_hailun -- 发布时间:2013/2/25 9:42:00 -- 查询字段加入_Identify,代码如下。 Tables(" 测试_table1").Fill("Select {供应商联络人}.[_Identify],简称,{供应商资料表}.代码,名称,交易币种,结款条件,税率,地址,{供应商资料表}.电话,传真,Email,Website,简介,登记人,登记 时间,联系人,职务,{供应商联络人}.电话 As [联系方式] From {供应商资料表} Inner JOIN {供应商联络人} ON {供应商联络人}.[代码] = {供应商资料表}.[代码]","ERP",True) Dim i As Integer =Tables("测试_table1").DataTable.DataRows.Count With Tables("测试_Table1").DataTable .LoadFilter = "" .LoadTop = 15 .LoadPage = 0 .Load() e.Form.Controls("页码信息").Text= "共[" & .TotalPages & "] 页 ,当前为第[" & .LoadPage+1 & "]页,共[" & i & "]行数据" End With |
-- 作者:fox0001 -- 发布时间:2013/2/25 10:06:00 -- 以下是引用lin_hailun在2013-2-25 9:42:00的发言:
查询字段加入_Identify,代码如下。 Tables(" 测试_table1").Fill("Select {供应商联络人}.[_Identify],简称,{供应商资料表}.代码,名称,交易币种,结款条件,税率,地址,{供应商资料表}.电话,传真,Email,Website,简介,登记人,登记 时间,联系人,职务,{供应商联络人}.电话 As [联系方式] From {供应商资料表} Inner JOIN {供应商联络人} ON {供应商联络人}.[代码] = {供应商资料表}.[代码]","ERP",True) Dim i As Integer =Tables("测试_table1").DataTable.DataRows.Count With Tables("测试_Table1").DataTable .LoadFilter = "" .LoadTop = 15 .LoadPage = 0 .Load() e.Form.Controls("页码信息").Text= "共[" & .TotalPages & "] 页 ,当前为第[" & .LoadPage+1 & "]页,共[" & i & "]行数据" End With 这个貌似只是查Access,如果查SQL Server呢?SQL Server没有定义_Identify字段,只定义了id字段作为主键。 |
-- 作者:even0898 -- 发布时间:2013/2/25 10:14:00 -- 列名 \'_Identify\' 不明确。 原因和楼上说的是一样吧,昨天我查遍了论坛,貌似是说要分页的话SQL表里必须有主键,可这个表我是在FOXTABLE里建立到我的SQL数据库里的啊,应该有_Identify的啊 |
-- 作者:lin_hailun -- 发布时间:2013/2/25 11:38:00 -- 这个是狐表的一个缺陷。最好能支持查询表分页咯。要改一下内部合成的sql语句了。 目前的话,楼主去数据库做一个视图吧,然后像表一样弄进来。 |
-- 作者:even0898 -- 发布时间:2013/2/25 13:40:00 -- 问题解决,鸣谢小林,UP |