Foxtable(狐表)用户栏目专家坐堂 → [求助]


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

主题:[求助]

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


加好友 发短信
等级:三尾狐 帖子:693 积分:5206 威望:0 精华:0 注册:2011/3/15 12:34:00
[求助]  发帖心情 Post By:2014/10/19 21:04:00 [只看该作者]

以下代码有一个问题,如果得分列中没有成绩分数(比赛开始前得分列是没有分数的),执行任何一个操作都会出现错误提示,请问代码如何修改?

 

Dim da As DataTable = DataTables("学生团体总分")

Dim da_source As DataTable = DataTables("比赛得分")

da.DataRows.Clear

Dim dwa As List(Of String) = da_source.GetUniqueValues ("队别 <> '教工组'", "单位" )

For Each dw As String In dwa

    Dim ndr As DataRow = da.AddNew

    ndr("单位") = dw

    ndr("总分") = da_source.Compute("sum(得分)", "单位 = '" & dw & "'")

Next

 

 

Dim dra As List(Of DataRow) = da.Select("", "总分 desc")

dra(0)("名次") = 1

For i As Integer = 1 To dra.Count - 1

    If dra(i)("总分") = dra(i-1)("总分") Then

        dra(i)("名次") = dra(i-1)("名次")

    Else

        dra(i)("名次") = i+1

    End If

Next

 

Tables("学生团体总分").Sort = "名次"

 

 

Dim db As DataTable = DataTables("教工团体总分")

Dim db_source As DataTable = DataTables("比赛得分")

db.DataRows.Clear

Dim dwb As List(Of String) = db_source.GetUniqueValues ("队别 = '教工组'", "单位" )

For Each dw As String In dwb

    Dim ndb As DataRow = db.AddNew

    ndb("单位") = dw

    ndb("总分") = db_source.Compute("sum(得分)", "单位 = '" & dw & "'")

Next

 

 

Dim drb As List(Of DataRow) = db.Select("", "总分 desc")

drb(0)("名次") = 1

For i As Integer = 1 To drb.Count - 1

    If drb(i)("总分") = drb(i-1)("总分") Then

        drb(i)("名次") = drb(i-1)("名次")

    Else

        drb(i)("名次") = i+1

    End If

Next

 

Tables("教工团体总分").Sort = "名次"





此主题相关图片如下:截图02.jpg
按此在新窗口浏览图片



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/19 21:17:00 [只看该作者]

 判断一下 dra drb 是否有数据。

 

 If dra.Count > 0 Then

      dra(0)

 End If


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


加好友 发短信
等级:三尾狐 帖子:693 积分:5206 威望:0 精华:0 注册:2011/3/15 12:34:00
  发帖心情 Post By:2014/10/19 21:50:00 [只看该作者]

请问代码放在什么位置合适?
If dra.Count > 0 Then

      dra(0)

 End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/19 21:51:00 [只看该作者]

 取 dra(0) drb(0) 之前,就要判断。

[此贴子已经被作者于2014-10-19 21:51:16编辑过]

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


加好友 发短信
等级:三尾狐 帖子:693 积分:5206 威望:0 精华:0 注册:2011/3/15 12:34:00
  发帖心情 Post By:2014/10/19 22:04:00 [只看该作者]

提示错误:

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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/19 22:06:00 [只看该作者]

 无语了,学了这么久你什么都还不会。

 

Dim dra As List(Of DataRow) = da.Select("", "总分 desc")
If dra.Count > 0 Then
    dra(0)("名次") = 1
   
    For i As Integer = 1 To dra.Count - 1
       
        If dra(i)("总分") = dra(i-1)("总分") Then
           
            dra(i)("名次") = dra(i-1)("名次")
           
        Else
           
            dra(i)("名次") = i+1
           
        End If
       
    Next
End If


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


加好友 发短信
等级:三尾狐 帖子:693 积分:5206 威望:0 精华:0 注册:2011/3/15 12:34:00
  发帖心情 Post By:2014/10/19 22:49:00 [只看该作者]

谢谢甜老师!我会努力学习的,今后还需要多多指教。

 回到顶部