Foxtable(狐表)用户栏目专家坐堂 → 请高手分析一下问题,谢谢!


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

主题:请高手分析一下问题,谢谢!

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


加好友 发短信
等级:四尾狐 帖子:816 积分:6685 威望:0 精华:2 注册:2012/8/23 12:35:00
请高手分析一下问题,谢谢!  发帖心情 Post By:2014/11/15 10:22:00 [显示全部帖子]

切换数据源:
      方案一:************************************************************************

        Dim dtNames As String = ""
        If  Connections("BOYsERP").ConnectionString <> Connections(_DsnName).ConnectionString Then
            '**************缷载数据表************************************************
            For Each  dt As DataTable In DataTables
                If dt.Type = 3 OrElse dt.Type = 4 AndAlso dt.ConnectionName<>_DsnName Then
                    dtNames = dtNames & "|" & dt.Name
                End If
            Next
            If dtNames <> "" Then
                dtNames = dtNames.trim("|")
                DataTables.Unload(dtNames)
            End If

            '使新数据源与内定数据源BOYsERP连接串相等*******************************************
            If Connections.Contains("BOYsERP") = True Then
                Connections.Delete("BOYsERP")
            End If
            Connections.Add("BOYsERP",Connections(_DsnName).ConnectionString)
            DataTables.Load(dtNames)
        End If


‘用上面的方式切换数据源,遇到两个问题:
1.对应的table没有产生。(不知为什么)
2.如果table能正常产生,但在新增行时会出现:该行不属于与此关系相同的:dataset 错误。

      方案二:********************************************************************************
         If  Connections("BOYsERP").ConnectionString <> Connections(_DsnName).ConnectionString Then
            For Each dt As DataTable In DataTables
                '切换数据源
                If dt.SourceType<>1 AndAlso dt.Type<>5 AndAlso Connections.Contains(_DsnName)=True  Then
                    Dim dbList As List (of String ) = Connections(_DsnName).GetTableNames
                    If dbList.Contains(dt.Name) Then
                        dt.ChangeConnection(_DsnName)            
                    End If
                End If
            Next
             '使新数据源与内定数据源BOYsERP连接串相等*******************************************
            If Connections.Contains("BOYsERP") = True Then
                Connections.Delete("BOYsERP")
            End If
            Connections.Add("BOYsERP",Connections(_DsnName).ConnectionString)
         End If
用方案二,产生问题:
 1.使用sqlfind得到后台数据行做修改,再使用_Identify找到前台数据行,然后用 datarow.load(false)时,会卡死。
 2.其它没找到原因的卡死。


不知各位狐友,是否有更完美的切换数据源的方法?




[此贴子已经被作者于2014-11-15 10:35:11编辑过]

 回到顶部