Foxtable(狐表)用户栏目专家坐堂 → 思路分析


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

主题:思路分析

帅哥哟,离线,有人找我吗?
13796361423
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:179 积分:1932 威望:0 精华:0 注册:2020/2/14 18:49:00
思路分析  发帖心情 Post By:2021/5/26 9:23:00 [只看该作者]

我想把 表学生名册 里 1班的学生 按照 成绩  前6名的学生 提出来  到表2, 1班剩下的学生放到表3; 2班的学生 按照 成绩  前14名的学生 提出来  到表2, 2班剩下的学生放到表3.   请问如何实现能方便?
就是一个表分成两个表,按照成绩分出来。 就是每班分出的人数不定。

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107455 积分:546554 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/26 9:47:00 [只看该作者]

比如

dim cj as double
dim drs as list(of datarow) = DataTables("表A").Select("","成绩 desc")
For i as integer = 0 to drs.count - 1 
dim dr1 as datarow = drs(i)
if i < 6'前6名
    Dim dr2 As DataRow = DataTables("表B").AddNew()
    
For Each dc As DataCol in DataTables("表A").DataCols
        dr2(dc.Name) = dr1(dc.name)
    
Next
else
    Dim dr2 As DataRow = DataTables("表C").AddNew()
    
For Each dc As DataCol in DataTables("表A").DataCols
        dr2(dc.Name) = dr1(dc.name)
    
Next
end if
Next


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


加好友 发短信
等级:幼狐 帖子:179 积分:1932 威望:0 精华:0 注册:2020/2/14 18:49:00
请问加个条件  发帖心情 Post By:2021/5/26 11:51:00 [只看该作者]

Dim cj As Double
Dim drs As List(of DataRow) = DataTables("表A").Select("","成绩 desc")
For i As Integer = 0 To drs.count - 1 
Dim dr1 As DataRow = drs(i)
If i < 6'前6名
    Dim dr2 As DataRow = DataTables("表B").AddNew()
    For Each dc As DataCol In DataTables("表A").DataCols
        dr2(dc.Name) = dr1(dc.name)
    Next
Else
    Dim dr2 As DataRow = DataTables("表C").AddNew()
    For Each dc As DataCol In DataTables("表A").DataCols
        dr2(dc.Name) = dr1(dc.name)
    Next
End If
Next



这个代码挺好使,  我想问一下, 我再加个条件, 如果“第一中学”的前6分出来,   “第一中学”那个条件加在哪里啊。     然后是“第二中学”“第三中学”“第四中学” 都按照固定的数分出来。  谢谢。

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107455 积分:546554 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/26 11:56:00 [只看该作者]

Dim drs As List(of DataRow) = DataTables("表A").Select("学校='第一中学'","成绩 desc")

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


加好友 发短信
等级:幼狐 帖子:179 积分:1932 威望:0 精华:0 注册:2020/2/14 18:49:00
请问如何其它学校筛选出来  发帖心情 Post By:2021/5/26 12:19:00 [只看该作者]

Dim cj As Double
Dim drs As List(of DataRow) = DataTables("表A").Select("学校='第一中学'","成绩 desc")
For i As Integer = 0 To drs.count - 1 
Dim dr1 As DataRow = drs(i)
If i < 2'前6名
    Dim dr2 As DataRow = DataTables("表B").AddNew()
    For Each dc As DataCol In DataTables("表A").DataCols
        dr2(dc.Name) = dr1(dc.name)
    Next
Else
    Dim dr2 As DataRow = DataTables("表C").AddNew()
    For Each dc As DataCol In DataTables("表A").DataCols
        dr2(dc.Name) = dr1(dc.name)
    Next
End If
Next


Dim cj As Double
Dim drs As List(of DataRow) = DataTables("表A").Select("学校='第二中学'","成绩 desc")
For i As Integer = 0 To drs.count - 1 
Dim dr1 As DataRow = drs(i)
If i < 3'前6名
    Dim dr2 As DataRow = DataTables("表B").AddNew()
    For Each dc As DataCol In DataTables("表A").DataCols
        dr2(dc.Name) = dr1(dc.name)
    Next
Else
    Dim dr2 As DataRow = DataTables("表C").AddNew()
    For Each dc As DataCol In DataTables("表A").DataCols
        dr2(dc.Name) = dr1(dc.name)
    Next
End If
Next


Dim cj As Double
Dim drs As List(of DataRow) = DataTables("表A").Select("学校='第三中学'","成绩 desc")
For i As Integer = 0 To drs.count - 1 
Dim dr1 As DataRow = drs(i)
If i < 2'前6名
    Dim dr2 As DataRow = DataTables("表B").AddNew()
    For Each dc As DataCol In DataTables("表A").DataCols
        dr2(dc.Name) = dr1(dc.name)
    Next
Else
    Dim dr2 As DataRow = DataTables("表C").AddNew()
    For Each dc As DataCol In DataTables("表A").DataCols
        dr2(dc.Name) = dr1(dc.name)
    Next
End If
Next


请问如何把他们合并到一起?

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107455 积分:546554 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/26 13:58:00 [只看该作者]

dim str() as string = {“第一中学”,“第二中学”,“第三中学”,“第四中学”}
for each s as string in str
Dim drs As List(of DataRow) = DataTables("表A").Select("学校='“ & s & ”'","成绩 desc")
For i As Integer = 0 To drs.count - 1 
Dim dr1 As DataRow = drs(i)
If i < 2'前6名
    Dim dr2 As DataRow = DataTables("表B").AddNew()
    For Each dc As DataCol In DataTables("表A").DataCols
        dr2(dc.Name) = dr1(dc.name)
    Next
Else
    Dim dr2 As DataRow = DataTables("表C").AddNew()
    For Each dc As DataCol In DataTables("表A").DataCols
        dr2(dc.Name) = dr1(dc.name)
    Next
End If
Next
next

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


加好友 发短信
等级:幼狐 帖子:179 积分:1932 威望:0 精华:0 注册:2020/2/14 18:49:00
每个学校取的学生不一样  发帖心情 Post By:2021/5/26 14:02:00 [只看该作者]

你好, 我这个每个学校取的学生不一样, 比如  一中  2名    ,  二中  3名  ,  三中  4名 , 如何设置啊

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107455 积分:546554 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/26 14:07:00 [只看该作者]

dim str() as string = {“第一中学”,“第二中学”,“第三中学”,“第四中学”}
dim str2() as integer= {2,3,4,4}
for j as integer = 0 to str.length - 1
Dim drs As List(of DataRow) = DataTables("表A").Select("学校='“ & str(j) & ”'","成绩 desc")
For i As Integer = 0 To drs.count - 1 
Dim dr1 As DataRow = drs(i)
If i < str2(j) 

 回到顶部