以文本方式查看主题

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

--  作者:blsu33
--  发布时间:2015/11/15 18:37:00
--  [求助]切换数据源
红袍老师,
    切换数据源时,提示数据源已经存在,切换不成功,请老师指点!


--  作者:blsu33
--  发布时间:2015/11/15 19:54:00
--  
红袍老师,
   自定义函数Usercoming 执行到标颜色的部分 后面不执行了,错误提示如附件。
Dim ipdz As String =args(0)
Dim e As object =args(1)
Dim s As String =""
\'遍历当前属于此数据源的表
For Each dt As DataTable In DataTables
    If dt.C  Then
        s += "|" & dt.name
    End If
Next
s = s.Trim("|")

Dim s1 As String="Provider=SQLOLEDB.1;Password=000211;Persist Security Info=True;User ID=sa;Initial Catalog=Maxtrue;Data Source=" & ipdz  \'家

If Connections.TryConnect(s1)= False Then
    MessageBox.Show("无法连接服务器,请检查录入是否正确!")
    \'本地连接
Else
       If S<>"" Then
        \'Dim s1 As String="Provider=SQLOLEDB.1;Password=000211;Persist Security Info=True;User ID=sa;Initial Catalog=MAXTRUE_1.1;Data Source=" & ipdz  \'家
        DataTables.Unload(s)
        Connections.Delete("maxtrue")
        MessageBox.Show(2)
        Connections.add("maxtrue",s1)
        DataTables.load(s)
        Dim dt1 As DataTable
        Dim cmd As New SQLCommand
        cmd.C
        cmd.CommandText = "Select * F rom {AS001用户}"
        dt1= cmd.ExecuteReader
        Return True
    Else
        MessageBox.Show("无法连接服务器,请重新启动尝试!")
        Syscmd.Project.Exit(False)
    End If
End If


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20151115195144.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2015/11/15 19:54:44编辑过]

--  作者:大红袍
--  发布时间:2015/11/15 19:54:00
--  
 呃,你怎么样写代码切换数据源的?
--  作者:blsu33
--  发布时间:2015/11/15 19:56:00
--  
老师,
   没看出来代码有什么问题

--  作者:大红袍
--  发布时间:2015/11/15 19:59:00
--  

这句出错

 

Connections.Delete("maxtrue")

 

改成

 

If Connections.Contains("maxtrue") then Connections.Delete("maxtrue")


--  作者:blsu33
--  发布时间:2015/11/15 20:09:00
--  
红袍老师,
   问题依旧,绿色的部分有弹窗0,1没有弹窗,然后还是那个提示

If S<>"" Then
        \'Dim s1 As String="Provider=SQLOLEDB.1;Password=000211;Persist Security Info=True;User ID=sa;Initial Catalog=MAXTRUE_1.1;Data Source=" & ipdz  \'家
        DataTables.Unload(s)
        If Connections.Contains("maxtrue") Then
            MessageBox.Show(0)
            Connections.Delete("maxtrue")
            Connections.add("maxtrue",s1)
        Else
            MessageBox.Show(1)
            Connections.add("maxtrue",s1)
            DataTables.load(s)
            Dim dt1 As DataTable
            Dim cmd As New SQLCommand
            cmd.C
            cmd.CommandText = "Select * F rom {AS001用户}"
            dt1= cmd.ExecuteReader
            Return True
        End If
    Else
        MessageBox.Show("无法连接服务器,请重新启动尝试!")
        Syscmd.Project.Exit(False)
    End If


--  作者:大红袍
--  发布时间:2015/11/15 20:11:00
--  
确定一下是add还是delete出错
--  作者:blsu33
--  发布时间:2015/11/15 20:17:00
--  
是add 我可以看见 表被删掉了 加载不进来
--  作者:大红袍
--  发布时间:2015/11/15 20:21:00
--  

msgbox(s1) 看是否正常。

 

拷贝s1的内容直接设置数据源,看是否报错


--  作者:blsu33
--  发布时间:2015/11/15 20:36:00
--  
老师,
抱歉,我看到表已经被删除了,但是第一个S1是显示的然后提示错误,没有显示第二个S1
因该是没有delete
链接字符串没有问题

 DataTables.Unload(s)
        MessageBox.Show(s1)
        Connections.Delete("maxtrue")
      MessageBox.Show(s1)