以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 成绩班级排名执行报错? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=28397)
|
-- 作者:cqlpjks
-- 发布时间: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
-- 发布时间: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
-- 发布时间:2013/1/28 11:45:00
--
谢谢!我已经发现了是“班”列的类型错了。我原先设置成的字符型,应为整数型。
[此贴子已经被作者于2013-1-28 11:51:04编辑过]
|
-- 作者:cqlpjks
-- 发布时间:2013/1/28 13:32:00
--
为什么“单位代码”列是字符型,公式就执行,“班”列是字符型就不得行呢?我没理解过来。
|
-- 作者:lin_hailun
-- 发布时间: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")
对于字符类型,前后要加单引号。
|