Foxtable(狐表)用户栏目专家坐堂 → 什么时候loaderOrder能配合loadPages等一起使用?


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

主题:什么时候loaderOrder能配合loadPages等一起使用?

帅哥哟,离线,有人找我吗?
客家阿哥
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:821 积分:5932 威望:0 精华:0 注册:2012/10/24 15:01:00
  发帖心情 Post By:2013/1/21 13:19:00 [只看该作者]

林老师啊!“上一页”“下一页”的代码不会写。。。。。。。。。。


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/21 13:27:00 [只看该作者]

以下是引用客家阿哥在2013-1-21 13:19:00的发言:

林老师啊!“上一页”“下一页”的代码不会写。。。。。。。。。。


你使用一个全局变量记录当前的页码,那么也就得到上一页下一页的页数了。

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


加好友 发短信
等级:四尾狐 帖子:821 积分:5932 威望:0 精华:0 注册:2012/10/24 15:01:00
  发帖心情 Post By:2013/1/22 1:17:00 [只看该作者]

林老师,我试着修改了一下,你检查一下!能否对SQL部分进行注析一下?看不懂!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:分页例子(修改).table


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/22 8:54:00 [只看该作者]

 大概是这样解析。

http://www.foxtable.com/help/topics/0688.htm

'下面的内容不需要修改
Dim sqlStr As String
If page = 1 Then   '对于第一页的情况,直接加载前top行数据
    sqlStr = "Select TOP {0} {1} FROM {2} order by {3}"
    sqlStr = String.Format(sqlStr, Top, col, "{" & tb & "}", Order)
Else If page = -1 Then '对于最后一页的情况
    Dim cmd As New SQLCommand
    cmd.CommandText = "select count(*) from {" & tb & "}"   '查找表的总行数
    Dim count As Integer = cmd.ExecuteScalar
    sqlStr = "Select TOP {0} {1} FROM {2} WHERE [_Identify] NOT In (Select TOP {3} [_Identify] FROM {2} order by {4}, [_Identify]) order by {4}, [_Identify]"   '查找_identify不在前(page-1)页的行里,然后显示top行的数据.用order排序
    sqlStr = String.Format(sqlStr, Top, col, "{" & tb & "}", Top * iif(count Mod top = 0, count \ top - 1, count \ Top), Order)
Else   '2-n-1页的情况
    sqlStr = "Select TOP {0} {1} FROM {2} WHERE [_Identify] NOT In (Select TOP {3} [_Identify] FROM {2} order by {4}, [_Identify]) order by {4}, [_Identify]"   '查找_identify不在前(page-1)页的行里,然后显示top行的数据.用order排序
    sqlStr = String.Format(sqlStr, Top, col, "{" & tb & "}", top * (page - 1), Order)
End If

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


加好友 发短信
等级:一尾狐 帖子:480 积分:3826 威望:0 精华:0 注册:2011/5/31 15:45:00
  发帖心情 Post By:2013/1/23 20:19:00 [只看该作者]

以下是引用lin_hailun在2013-1-22 8:54:00的发言:
 大概是这样解析。

http://www.foxtable.com/help/topics/0688.htm

'下面的内容不需要修改
Dim sqlStr As String
If page = 1 Then   '对于第一页的情况,直接加载前top行数据
    sqlStr = "Select TOP {0} {1} FROM {2} order by {3}"
    sqlStr = String.Format(sqlStr, Top, col, "{" & tb & "}", Order)
Else If page = -1 Then '对于最后一页的情况
    Dim cmd As New SQLCommand
    cmd.CommandText = "select count(*) from {" & tb & "}"   '查找表的总行数
    Dim count As Integer = cmd.ExecuteScalar
    sqlStr = "Select TOP {0} {1} FROM {2} WHERE [_Identify] NOT In (Select TOP {3} [_Identify] FROM {2} order by {4}, [_Identify]) order by {4}, [_Identify]"   '查找_identify不在前(page-1)页的行里,然后显示top行的数据.用order排序
    sqlStr = String.Format(sqlStr, Top, col, "{" & tb & "}", Top * iif(count Mod top = 0, count \ top - 1, count \ Top), Order)
Else   '2-n-1页的情况
    sqlStr = "Select TOP {0} {1} FROM {2} WHERE [_Identify] NOT In (Select TOP {3} [_Identify] FROM {2} order by {4}, [_Identify]) order by {4}, [_Identify]"   '查找_identify不在前(page-1)页的行里,然后显示top行的数据.用order排序
    sqlStr = String.Format(sqlStr, Top, col, "{" & tb & "}", top * (page - 1), Order)
End If
林老师,对SQL的疑惑,   Select TOP {0} {1} FROM {2} order by {3}   ,可以这么理解“查询来自于表{2}以{0}{1}作为TOP条件的的记录并以{3}来排序”,其中{2}是表名,但{0}{1}跟{3}在此处是作为表使用吗?各代表什么?其根据是什么?即此三个表来自哪里?另外底下的[_Identify]) order by {4}应该怎么理解?看不明这些地方的语句表达,还望解答,非常感谢。


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


加好友 发短信
等级:四尾狐 帖子:821 积分:5932 威望:0 精华:0 注册:2012/10/24 15:01:00
  发帖心情 Post By:2013/1/23 22:07:00 [只看该作者]

{0}{1}跟{3}分别是Top, col, 和Order啊!是行数,字段,和排序

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/24 11:16:00 [只看该作者]

以下是引用客家阿哥在2013-1-23 22:07:00的发言:
{0}{1}跟{3}分别是Top, col, 和Order啊!是行数,字段,和排序


嗯嗯,是的,你也可以用字符串 "xxx" & top & "xxx" & col & "xxx" & order的方式。

我这样写,只是为了让sql语句看起来通顺一些。

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


加好友 发短信
等级:一尾狐 帖子:480 积分:3826 威望:0 精华:0 注册:2011/5/31 15:45:00
  发帖心情 Post By:2013/1/24 11:21:00 [只看该作者]

以下是引用客家阿哥在2013-1-23 22:07:00的发言:
{0}{1}跟{3}分别是Top, col, 和Order啊!是行数,字段,和排序
我知道,我想知道的是為什麼這裡要用大括號以及大括號裡的數字是跟據什麼得來的?以及[_Identify]) order by {4}的為何Order前面加列名?


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/24 12:07:00 [只看该作者]

以下是引用jaegea在2013-1-24 11:21:00的发言:
我知道,我想知道的是為什麼這裡要用大括號以及大括號裡的數字是跟據什麼得來的?以及[_Identify]) order by {4}的為何Order前面加列名?


这个是这个只是一种格式,{0}用来标注这里要用一个字符串去填充。

以及[_Identify]) order by {4}的為何Order前面加列名?——对于这个的话,这两个是不同表的Order by,你可以看看最后生成的sql语句,就明白了。

 回到顶部
总数 19 上一页 1 2