以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144757)

--  作者:我的碗里有个晋晋
--  发布时间:2019/12/28 21:42:00
--  [求助]
请大佬帮助,我想将"总表"内"抄送单位"一栏(复选框)内的"单位"在每被选中一次后,就在"所有单位"表中将该单位的编号+1,但我写的代码在表事件中点击确定没报错,但是在我每次点击选定"抄送单位"栏几个单位后,
却提示:
"Exception has been thrown by the target of an invocation.
Unable to cast object of type \'System.String[]\' to type \'System.Collections.Generic.List`1[System.String]\'."
请问是什么原因呢?烦请大佬解惑,谢谢!

Select Case e.DataCol.name                                                            \'此代码写在DataTables("总表")内的表属性-DataColChanged内
    Case "抄送单位"                                                                          \'现选定若干个抄送单位(抄送单位的值为链接到DataTables("所有单位")内"单位"列下的复选框)
        If e.DataRow("抄送单位") IsNot Nothing Then
            Dim cs As List(Of String) = e.DataRow("抄送单位").Split(",")   \'将"抄送单位"复选框内的值以集合形式赋给变量cs
            Dim dws As List(Of String)
            dws = DataTables("所有单位").GetValues("单位")                    \'将DataTables("所有单位")内的所有"单位"以集合形式赋给变量dws
            For Each dw As String In dws
                If cs.Contains("& dw &") = True Then                                \'分别对DataTables("所有单位")内的"单位"进行判断,是否被包含在新添加的抄送单位内,如果包含
                    Dim dr As DataRow
                    dr = DataTables("所有单位").Find("单位 = \'" & dw & "\'")   \'找到DataTables("所有单位")内该单位的行
                    dr("抄送单位编号") = dr("抄送单位编号") + 1                     \'然后对该单位的抄送编号+1
                End If
            Next
        End If
End Select
[此贴子已经被作者于2019/12/28 21:42:02编辑过]

--  作者:2900819580
--  发布时间:2019/12/29 8:59:00
--  
If cs.Contains(dw) = True Then 
--  作者:有点蓝
--  发布时间:2019/12/29 21:17:00
--  
Select Case e.DataCol.name                                                            \'此代码写在DataTables("总表")内的表属性-DataColChanged内
    Case "抄送单位"                                                                          \'现选定若干个抄送单位(抄送单位的值为链接到DataTables("所有单位")内"单位"列下的复选框)
        If e.DataRow("抄送单位") IsNot Nothing Then
            Dim cs As new List(Of String)
            cs.AddRange(e.DataRow("抄送单位").Split(","))   \'将"抄送单位"复选框内的值以集合形式赋给变量cs
            Dim dws As List(Of String)
            dws = DataTables("所有单位").GetValues("单位")                    \'将DataTables("所有单位")内的所有"单位"以集合形式赋给变量dws
            For Each dw As String In dws
                If cs.Contains(dw) = True Then                                \'分别对DataTables("所有单位")内的"单位"进行判断,是否被包含在新添加的抄送单位内,如果包含
                    Dim dr As DataRow
                    dr = DataTables("所有单位").Find("单位 = \'" & dw & "\'")   \'找到DataTables("所有单位")内该单位的行
                    dr("抄送单位编号") = dr("抄送单位编号") + 1                     \'然后对该单位的抄送编号+1
                End If
            Next
        End If
End Select