Foxtable(狐表)用户栏目专家坐堂 → 转换无效


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

主题:转换无效

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


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
转换无效  发帖心情 Post By:2017/1/8 15:54:00 [只看该作者]

Dim dr As DataRow = e.DataRow
Dim ds As DataRow
Dim dt As DataTable = DataTables("小生表")
Dim flt As String = "[考试名称] = '" & dr("考试名称") & "'and [学校班级] = '" & dr("学校班级") & "'"
If e.DataCol.Name = "学校班级" Then
    dr("参考数") = dt.Compute("count(姓名)",flt)
    dr("总分_人平") = format(dt.Compute("AVG(总分)",flt),"#.00")
    If val(dr("年级")) <= 6
        dr("语文_优秀率") = format(dt.Compute("count(姓名)","[语文] >= 85 and " & flt)*100/dr("参考数"),"#.00")
        dr("语文_及格率") = format(dt.Compute("count(姓名)","[语文] >= 60 and " & flt)*100/dr("参考数"),"#.00")
        dr("语文_人平") = format(dt.Compute("AVG(语文)",flt),"#.00")
        dr("数学_优秀率") = format(dt.Compute("count(姓名)","[数学] >= 85 and " & flt)*100/dr("参考数"),"#.00")
        dr("数学_及格率") = format(dt.Compute("count(姓名)","[数学] >= 60 and " & flt)*100/dr("参考数"),"#.00")
        dr("数学_人平") = format(dt.Compute("AVG(数学)",flt),"#.00")
    Else
        dr("语文_优秀率") = format(dt.Compute("count(姓名)","[语文] >= 80 and " & flt)*100/dr("参考数"),"#.00")
        dr("语文_及格率") = format(dt.Compute("count(姓名)","[语文] >= 60 and " & flt)*100/dr("参考数"),"#.00")
        dr("语文_人平") = format(dt.Compute("AVG(语文)",flt),"#.00")
        dr("数学_优秀率") = format(dt.Compute("count(姓名)","[数学] >= 80 and " & flt)*100/dr("参考数"),"#.00")
        dr("数学_及格率") = format(dt.Compute("count(姓名)","[数学] >= 60 and " & flt)*100/dr("参考数"),"#.00")
        dr("数学_人平") = format(dt.Compute("AVG(数学)",flt),"#.00")
        dr("英语_优秀率") = format(dt.Compute("count(姓名)","[英语] >= 80 and " & flt)*100/dr("参考数"),"#.00")
        dr("英语_及格率") = format(dt.Compute("count(姓名)","[英语] >= 60 and " & flt)*100/dr("参考数"),"#.00")
        dr("英语_人平") = format(dt.Compute("AVG(数学)",flt),"#.00")
        
        dr("政治_优秀率") = format(dt.Compute("count(姓名)","[政治] >= 80 and " & flt)*100/dr("参考数"),"#.00")
        dr("政治_及格率") = format(dt.Compute("count(姓名)","[政治] >= 60 and " & flt)*100/dr("参考数"),"#.00")
        dr("政治_人平") = format(dt.Compute("AVG(政治)",flt),"#.00")
        
        dr("历史_优秀率") = format(dt.Compute("count(姓名)","[历史] >= 80 and " & flt)*100/dr("参考数"),"#.00")
        dr("历史_及格率") = format(dt.Compute("count(姓名)","[历史] >= 60 and " & flt)*100/dr("参考数"),"#.00")
        dr("历史_人平") = format(dt.Compute("AVG(历史)",flt),"#.00")
        If val(dr("年级")) > 7
            dr("物理_优秀率") = format(dt.Compute("count(姓名)","[物理] >= 80 and " & flt)*100/dr("参考数"),"#.00")
            dr("物理_及格率") = format(dt.Compute("count(姓名)","[物理] >= 60 and " & flt)*100/dr("参考数"),"#.00")
            dr("物理_人平") = format(dt.Compute("AVG(物理)",flt),"#.00")
        End If
        If val(dr("年级")) > 8
            dr("化学_优秀率") = format(dt.Compute("count(姓名)","[化学] >= 80 and " & flt)*100/dr("参考数"),"#.00")
            dr("化学_及格率") = format(dt.Compute("count(姓名)","[化学] >= 60 and " & flt)*100/dr("参考数"),"#.00")
            dr("化学_人平") = format(dt.Compute("AVG(化学)",flt),"#.00")
        End If
        If val(dr("年级")) = 7 Or val(dr("年级")) = 8
            dr("生物_优秀率") = format(dt.Compute("count(姓名)","[生物] >= 80 and " & flt)*100/dr("参考数"),"#.00")
            dr("生物_及格率") = format(dt.Compute("count(姓名)","[生物] >= 60 and " & flt)*100/dr("参考数"),"#.00")
            dr("生物_人平") = format(dt.Compute("AVG(生物)",flt),"#.00")
            dr("地理_优秀率") = format(dt.Compute("count(姓名)","[地理] >= 80 and " & flt)*100/dr("参考数"),"#.00")
            dr("地理_及格率") = format(dt.Compute("count(姓名)","[地理] >= 60 and " & flt)*100/dr("参考数"),"#.00")
            dr("地理_人平") = format(dt.Compute("AVG(地理)",flt),"#.00")
        End If
    End If
    ds = DataTables("师表").Find("考试名称 = '" & e.DataRow("考试名称") & "'and 学校班级 = '" & e.DataRow("学校班级") & "'" )
    If ds IsNot Nothing
        e.DataRow("语文_教师")= ds("语文教师")
        e.DataRow("数学_教师")= ds("数学教师")
        e.DataRow("英语_教师")= ds("英语教师")
        e.DataRow("政治_教师")= ds("政治教师")
        e.DataRow("历史_教师")= ds("历史教师")
        e.DataRow("物理_教师")= ds("物理教师")
        e.DataRow("化学_教师")= ds("化学教师")
        e.DataRow("生物_教师")= ds("生物教师")
        e.DataRow("地理_教师")= ds("地理教师")
    End If
End If



.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2016.7.29.1
错误所在事件:表,小班表, DataColChanged
详细错误信息:
调用的目标发生了异常。
从字符串“”到类型“Double”的转换无效。
输入字符串的格式不正确。


请问老师上面代码是错在哪里?

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/8 16:29:00 [只看该作者]

 列【学校班级】改成字符列,不要用数值列。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/8 16:30:00 [只看该作者]

 如果用字符列,要改代码

 

Dim flt As String = "[考试名称] = '" & dr("考试名称") & "'and [学校班级] = '" & val(dr("学校班级")) & "'"


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


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/1/8 17:07:00 [只看该作者]

改了还是不行


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/8 17:15:00 [只看该作者]


 回到顶部