以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  项目打不开了,紧急求救啊  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=143188)

--  作者:liufucan
--  发布时间:2019/11/16 17:44:00
--  项目打不开了,紧急求救啊
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.foxdb


--  作者:有点蓝
--  发布时间:2019/11/16 17:50:00
--  
我也打不开,等周一上班看开发那边能不能恢复。
--  作者:liufucan
--  发布时间:2019/11/16 17:53:00
--  
我通过一个能打开的项目打开这个的时候提示:

.NET Framework 版本:2.0.50727.8800
Foxtable 版本:2019.4.12.1
错误所在事件:
详细错误信息:
名为“主表”的 DataTable 已属于此 DataSet。


--  作者:liufucan
--  发布时间:2019/11/18 10:06:00
--  
这个项目能恢复了吗
--  作者:狐狸爸爸
--  发布时间:2019/11/18 10:32:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.foxdb


--  作者:liufucan
--  发布时间:2019/11/18 11:08:00
--  
我这段代码原来可以根据数据源获取数据表,现在怎么不行了呢

Dim Names As New List(Of String)
For Each cn As Connection In Connections
    Names.add(cn.Name)
    
Next
Tables("数据表").Cols("数据源").combolist=String.Join("|",Names.ToArray)

If e.Row("数据源") <> "" Then

If e.Col.Name = "数据表" Then \'如果正在编辑的是县市列
    \'从行政区域表提取该省市的县市作为列表项目
    If e.Row("是否查询表") = True Then
        e.Col.combolist=String.Join("|",Connections(e.Row("数据源")).GetviewNames.toarray)
    Else
        e.Col.combolist=String.Join("|",Connections(e.Row("数据源")).GettableNames.toarray)
    End If
    
End If
End If

--  作者:有点蓝
--  发布时间:2019/11/18 11:46:00
--  
我测试没有问题,上传实例说明
--  作者:liufucan
--  发布时间:2019/11/18 11:48:00
--  
实例就是狐爸给我改好的那个,我在2.0下测试正常。
--  作者:有点蓝
--  发布时间:2019/11/18 14:46:00
--  
改为这样,.net4.0之后Toarray的用法可能受linq的影响返回值

If e.Row.IsNull("数据源") = False Then
    If e.Col.Name = "数据表" Then \'如果正在编辑的是县市列
        \'从行政区域表提取该省市的县市作为列表项目
        Dim nms As String()
        If e.Row("是否查询表") = True Then
            nms  = Connections(CurrentTable.Current("数据源")).GetviewNames.Toarray
        Else
            nms  = Connections(CurrentTable.Current("数据源")).GettableNames.Toarray
        End If
        If nms.Length > 0 Then
            e.Col.combolist=String.Join("|",nms)
        End If
    End If
End If