以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请高手指教错在哪里?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=32028)

--  作者:良才
--  发布时间:2013/4/24 15:28:00
--  请高手指教错在哪里?

Dim dic As new Dictionary(of String,Integer)
DataTables("教师课时奖励").DataRows.Clear()
For Each dr1 As DataRow In DataTables("班级人数").DataRows
    For Each dr2 As DataRow In DataTables("教师任课").Select("[学期] = \'" & dr1("学期") & "\' and [学科] =\'" & dr1("学科") & "\'")
      Dim nm As String = dr2("学科")
        Dim vl As String = dr1("班级人数")*dr2("课时")
        If dic.ContainsKey(nm) = False
            dic.Add(nm,vl)
        Else
            dic(nm) = dic(nm)+ vl
        End If
    Next
Next
For Each key As String In dic.keys
    Dim dr As DataRow = DataTables("教师课时奖励").AddNew()
    dr("学科") = key
    dr("超班额金额") = dic(key)
Next

Dim dic1 As new Dictionary(of String,Integer)
DataTables("教师课时奖励").DataRows.Clear()
For Each dr1 As DataRow In DataTables("班级人数").DataRows
    For Each dr2 As DataRow In DataTables("教师任课").Select("[学期] = \'" & dr1("学期") & "\' and [学科] =\'" & dr1("学科") & "\'")
        Dim nm1 As String = dr2("教师姓名")
        Dim vl As String = dr1("班级人数")*dr2("课时")
        If dic1.ContainsKey(nm1 & "|" & dr2("学科")) = False
            dic1.Add(nm1 & "|" & dr2("学科"),vl)
        Else
            dic1(nm1 & "|" & dr2("学科")) = dic1(nm1 & "|" & dr2("学科"))+ vl
        End If
    Next
Next
For Each key As String In dic1.keys
    Dim dr1 As DataRow = DataTables("教师课时奖励").AddNew()
    Dim str() As String = key.Split("|")
    dr1("教师姓名") = str(0)
    dr1("学科")=str(1)
    dr1("超班额金额") = dic1(key)
Next

Dim dic2 As new Dictionary(of String,Integer)
DataTables("教师课时奖励").DataRows.Clear()
For Each dr1 As DataRow In DataTables("班级人数").DataRows
    For Each dr2 As DataRow In DataTables("教师任课").Select("[学期] = \'" & dr1("学期") & "\' and [学科] =\'" & dr1("学科") & "\'")
        Dim nm2 As String = dr2("学期")
        Dim vl As String = dr1("班级人数")*dr2("课时")
        If dic2.ContainsKey(nm2 & "|" & dr2("学期")) = False
            dic2.Add(nm2 & "|" & dr2("学期"),vl)
        Else
            dic2(nm2 & "|" & dr2("学期")) = dic2(nm2 & "|" & dr2("学期"))+ vl
        End If
    Next
Next
For Each key As String In dic1.keys
    Dim dr2 As DataRow = DataTables("教师课时奖励").AddNew()
    Dim str() As String = key.Split("|")
    dr2("教师姓名") = str(0)
    dr2("学科")=str(1)
    dr2("学期")=str(2)
    dr2("超班额金额") = dic2(key)
Next

 

前两组是对的,好像错在第三组,请高手指教

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20130424153217.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2013-4-24 15:33:26编辑过]

--  作者:XYT
--  发布时间:2013/4/24 15:29:00
--  

错误提示呢,不贴出来吗

 


--  作者:良才
--  发布时间:2013/4/24 15:33:00
--  请高手指教
好的,谢谢!
[此贴子已经被作者于2013-4-24 15:36:07编辑过]

--  作者:XYT
--  发布时间:2013/4/24 15:45:00
--  
看不出,让其他大神帮你,顶
--  作者:Bin
--  发布时间:2013/4/24 15:48:00
--  
文件发出来吧.有利于别人帮助你快速排错.
--  作者:狐狸爸爸
--  发布时间:2013/4/24 15:48:00
--  

For Each key As String In dic1.keys
    Dim dr2 As DataRow = DataTables("教师课时奖励").AddNew()
    Dim str() As String = key.Split("|")
    dr2("教师姓名") = str(0)
    dr2("学科")=str(1)
    dr2("学期")=str(2)
    dr2("超班额金额") = dic2(key)
Next

 

改为:

 

 

For Each key As String In dic1.keys
    Dim dr2 As DataRow = DataTables("教师课时奖励").AddNew()
    Dim str() As String = key.Split("|")

    if str.Length >=3 then
         dr2("教师姓名") = str(0)
         dr2("学科")=str(1)
         dr2("学期")=str(2)
         dr2("超班额金额") = dic2(key)

    end if
Next


--  作者:良才
--  发布时间:2013/4/24 16:20:00
--  请高手指教

教师课时奖励表,学期、教师姓名、年级、学科、超班额金额五列都加入。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.zip


 

[此贴子已经被作者于2013-4-24 16:20:49编辑过]

--  作者:良才
--  发布时间:2013/4/24 16:30:00
--  
狐爸,我改了没有数据。
--  作者:Bin
--  发布时间:2013/4/24 17:21:00
--  
你这都乱来的.你都没添加到,你却要获取.当然会报错.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.zip