Foxtable(狐表)用户栏目专家坐堂 → BeforeConnectOuterDataSource中的全局变量不能执行吗


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

主题:BeforeConnectOuterDataSource中的全局变量不能执行吗

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


加好友 发短信
等级:小狐 帖子:341 积分:2455 威望:0 精华:0 注册:2014/7/30 18:03:00
BeforeConnectOuterDataSource中的全局变量不能执行吗  发帖心情 Post By:2015/12/29 15:49:00 [显示全部帖子]

全局代码中设置了:
'判断是否连接数据库成功
Public isconnected As Boolean

BeforeConnectOuterDataSource事件中写了:这个代码

If e.Name = "ERPdatabase" Then
    Dim pathP As String = "System/DatabasePath"
    Dim xmlDoc As New System.XML.XmlDocument
    xmlDoc.Load(config)
    Dim xmlNd As System.XML.XmlNode = xmlDoc.SelectSingleNode(pathP)
    Dim databasePath As String = xmlNd.InnerText
  MessageBox.show(databasePath)  
    Dim pathN As String = "System/DatabaseName"
    Dim xmlNd1 As System.XML.XmlNode = xmlDoc.SelectSingleNode(pathN)
    Dim databaseName As String = xmlNd1.InnerText
      MessageBox.show(databaseName )  
    Dim pathPS As String = "System/DatabasePassword"
    Dim xmlNd2 As System.XML.XmlNode = xmlDoc.SelectSingleNode(pathPS)
    Dim databasePassword As String = xmlNd2.InnerText
 MessageBox.show(databasePassword )     
    Dim s As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & databasePath & "\" & databaseName & ";Persist Security Info=False;Jet OLEDB:Database Password=" & databasePassword
     MessageBox.show(s)
MessageBox.show(Connections.TryConnect(s))
If Connections.TryConnect(s) = False Then
        MessageBox.Show("数据源无法连通!")
MessageBox.show(1)
        e.HideSplashForm = True
MessageBox.show(2)
        isconnected= False
MessageBox.show(3)
    Else
MessageBox.show(4)
        isconnected= True
MessageBox.show(5)
        e.ConnectionString = s

    End If
MessageBox.show(e.ConnectionString)  
MessageBox.show(Isconnected) 

没发布项目的时候,一切正常。发布后在其他计算机上运行的时候,执行到  【isconnected= True】,就莫名其妙的退出了,没有提示错误
(【MessageBox.show(5)】这一步没有执行,MessageBox.show(4)】这一步执行了)就卡在isconnected上面


 回到顶部
帅哥哟,离线,有人找我吗?
sjzsdu
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:341 积分:2455 威望:0 精华:0 注册:2014/7/30 18:03:00
  发帖心情 Post By:2015/12/29 16:11:00 [显示全部帖子]

数据库密码故意设置错误后, MessageBox.Show("数据源无法连通!")
MessageBox.show(1)
        e.HideSplashForm = True
MessageBox.show(2) 这几步都能执行,
下面几步也没执行下去,也没有错误提示跳出来
 isconnected= False
MessageBox.show(3)

在本计算机,发布后的项目和发布前的项目都能够执行,没有错误。
发布后的项目搬到其他计算机上运行就出来这个问题。这会是什么情况呢,想不明白啊,纠结了一天了,你发布后有没有搬到其他计算机上试过

 回到顶部
帅哥哟,离线,有人找我吗?
sjzsdu
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:341 积分:2455 威望:0 精华:0 注册:2014/7/30 18:03:00
  发帖心情 Post By:2015/12/29 16:49:00 [显示全部帖子]

把isconnected那两步拿掉,可以执行下去

 回到顶部
帅哥哟,离线,有人找我吗?
sjzsdu
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:341 积分:2455 威望:0 精华:0 注册:2014/7/30 18:03:00
  发帖心情 Post By:2015/12/29 17:17:00 [显示全部帖子]

全局变量和Vars变量是不是只能在afteropenproject以后才能使用啊,我用vars变量代替了全局变量isconnected
BeforeConnectOuterDataSource事件可以顺利执行了,为Vars(“isconnected”)为true
但是在afteropenproject事件中引用 Vars(“isconnected”)的时候,发现这个变量值居然是Null。


 回到顶部