Dim s As String = Date.Now & " Step 1 开始运行 " & vbcrlf
FileSys.WriteAllText("d:\Errortable.txt", s, True)
If OpenFileArgs.Count = 0 Then
' MessageBox.show("正常情况没按F10,不触发")
s = Date.Now & " Step 1 正常运行至连接数据库 " & vbcrlf
FileSys.WriteAllText("d:\Errortable.txt", s, True)
If e.name = "database" Then
Dim Val2 As String = FileSys.ReadAllText(e.ProjectPath & "zhsy.txt")
Dim Val3 As String = DecryptText(Val2,"123456","123456") '解密,两个密钥必须和加密的时候相同
Dim st_1 As String
s = Date.Now & " Step 2 连接 " & Val3 & vbcrlf
FileSys.WriteAllText("d:\Errortable.txt", s, True)
我是将加密字符串放在一个记事本上,软件启动时,读取记事本上的信息来连接字符串
查错时加了一个记事本, 当走到STEP2 是空值,如果是内部数据库的密文,这个就有值;当是外部数据库时,就没有值。所以问题点出在这儿:
Dim Val2 As String = FileSys.ReadAllText(e.ProjectPath & "zhsy.txt")
Dim Val3 As String = DecryptText(Val2,"123456","123456") '解密,两个密钥必须和加密的时候相同
这两句话上,弹出来的是空的,有将加密字符串在命令窗口执行,结果是正确的
在连接外部数据库时,就会偶发为空闪退