Foxtable(狐表)用户栏目专家坐堂 → 成绩班级排名执行报错?


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

主题:成绩班级排名执行报错?

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


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
成绩班级排名执行报错?  发帖心情 Post By:2013/1/28 9:55:00 [只看该作者]

我家里的电脑上执行这个代码没问题,怎么在办公室电脑中执行就报错?不知代码是哪里定错了,请指教,谢谢!
图片点击可在新窗口打开查看此主题相关图片如下:报错.jpg
图片点击可在新窗口打开查看
班级排名代码:Tables("成绩库").StopRedraw
e.Form.Controls("Label1").text="排名中,请稍候..."
Dim Time,Time1 As Date
Time = Date.now
Dim pm As List(Of String()) = CurrentTable.DataTable.GetUniqueValues("","单位代码","班")
Dim pmc As Integer
Dim ColNames() As String = {"总分"}
Dim TotalName As String
CurrentTable.Redraw = False
For Each ColName As String In ColNames
    For i As Integer = 0 To pm.Count -1
        If pm(i)(0) = "" Then
            Continue For
        End If
        Dim drs As List(Of DataRow) = CurrentTable.DataTable.Select("[单位代码] = '" & pm(i)(0) & "'And [班] = " & pm(i)(1), ColName & " DESC")
        pmc = 0
        TotalName = ColName & "班名"
        For n As Integer = 0 To drs.Count - 1
            pmc = pmc +1
            If n > 0 AndAlso drs(n)(ColName ) = drs(n-1)(ColName) Then
                drs(n)(TotalName ) = drs(n-1)(TotalName )
            Else
                drs(n)(TotalName ) = pmc
            End If
        Next
    Next
Next
CurrentTable.Redraw = True
Time1 = Date.Now
e.Form.Controls("Label1").text="耗时 " & (Time1-Time).TotalSeconds & " 秒"

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


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

这句代码出错了。

Dim drs As List(Of DataRow) = CurrentTable.DataTable.Select("[单位代码] = '" & pm(i)(0) & "'And [班] = " & pm(i)(1), ColName & " DESC")


看看 班列 是否有空值。

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


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
  发帖心情 Post By:2013/1/28 11:45:00 [只看该作者]

谢谢!我已经发现了是“班”列的类型错了。我原先设置成的字符型,应为整数型。
[此贴子已经被作者于2013-1-28 11:51:04编辑过]

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


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
  发帖心情 Post By:2013/1/28 13:32:00 [只看该作者]

为什么“单位代码”列是字符型,公式就执行,“班”列是字符型就不得行呢?我没理解过来。

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


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

以下是引用cqlpjks在2013-1-28 13:32:00的发言:
为什么“单位代码”列是字符型,公式就执行,“班”列是字符型就不得行呢?我没理解过来。


如果是字符型,那一句要这样写。

Dim drs As List(Of DataRow) = CurrentTable.DataTable.Select("[单位代码] = '" & pm(i)(0) & "'And [班] = '" & pm(i)(1) & "'", ColName & " DESC")

对于字符类型,前后要加单引号。



 回到顶部