以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  无法在 System.String 和 System.Int32 上执行“=”操作。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=191305)

--  作者:hbfnmxb
--  发布时间:2024/4/9 20:43:00
--  无法在 System.String 和 System.Int32 上执行“=”操作。
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:窗口,窗口1,Button2,Click
详细错误信息:
无法在 System.String 和 System.Int32 上执行“=”操作。

具体代码如下:
Dim kslxs As List(Of String) = DataTables("类排序表").GetValues("考试类代码")
For Each kslx As String In kslxs
    \'获得该班级的全部行,按总分降序排序
    Dim drs As List(Of DataRow) = DataTables("类排序表").Select("[考试类代码] = " & kslx, "修正分数 DESC")
    For n As Integer = 0 To drs.Count - 1 \'遍历所有行
        If n > 0 AndAlso drs(n)("修正分数") = drs(n - 1)("修正分数") Then \'如果总分和上一行相同
            drs(n)("类排序") = drs(n - 1)("类排序") \'则排名等于上一行
        Else
            drs(n)("类排序") = n + 1 \'设置排名
        End If
    Next
Next这个问题如何解决?谢谢老师

--  作者:有点蓝
--  发布时间:2024/4/9 21:02:00
--  
http://www.foxtable.com/webhelp/topics/1284.htm
--  作者:hbfnmxb
--  发布时间:2024/4/9 21:17:00
--  
没看出来!哪里的问题,谢谢老师
--  作者:有点蓝
--  发布时间:2024/4/9 21:46:00
--  
[考试类代码]是字符列吗?


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


--  作者:hbfnmxb
--  发布时间:2024/4/9 22:10:00
--  
老师,找到了:
Dim drs As List(Of DataRow) = DataTables("类排序表").Select("[考试类代码] =\'" & kslx & "\'","修正分数 DESC")

--  作者:hbfnmxb
--  发布时间:2024/4/9 22:12:00
--  
老师,还有一个问题,这里排序是相同分数并列,如有5个100分,这五个人并列第一名,99分的排名就是第六名了,我不想让他这样排,我的目的是让99分的,排第二名,这个代码如何来写?谢谢老师
--  作者:有点蓝
--  发布时间:2024/4/9 22:33:00
--  
……
dim a as integer = 1
    For n As Integer = 0 To drs.Count - 1 \'遍历所有行
        If n > 0 AndAlso drs(n)("修正分数") = drs(n - 1)("修正分数") Then \'如果总分和上一行相同
            drs(n)("类排序") = drs(n - 1)("类排序") \'则排名等于上一行
        Else
            drs(n)("类排序") = a \'设置排名
a += 1
        End If
    Next
Next这个问题如何解决?谢谢老师

--  作者:hbfnmxb
--  发布时间:2024/4/10 10:35:00
--  
谢谢老师