刚又认真试了下,因为我把设置保存在 ini 文件中, 全局代码中定义了一个读写ini 文件的类。只要调用了读ini的函数就会弹出错误。而且ini读取不到数据。但是这个函数不在 BeforeConnectOuterDataSource 时使用是可以正常用的。ini的读写是论坛上找的。
Public Class INIClass Public inipath As String <DllImport("kernel32")> _ Private Shared Function WritePrivateProfileString(section As String, key As String, val As String, filePath As String) As Long End Function <DllImport("kernel32")> _ Private Shared Function GetPrivateProfileString(section As String, key As String, def As String, retVal As StringBuilder, size As Integer, filePath As String) As Integer End Function ''' <summary> ''' 构造方法 ''' </summary> ''' <param name="INIPath">文件路径</param> Public Sub New(INIPath__1 As String) inipath = INIPath__1 End Sub ''' <summary> ''' 写入INI文件 ''' </summary> ''' <param name="Section">项目名称(如 [TypeName] )</param> ''' <param name="Key">键</param> ''' <param name="Value">值</param> Public Sub IniWriteValue(Section As String, Key As String, Value As String) WritePrivateProfileString(Section, Key, Value, Me.inipath) End Sub ''' <summary> ''' 读出INI文件 ''' </summary> ''' <param name="Section">项目名称(如 [TypeName] )</param> ''' <param name="Key">键</param> Public Function IniReadValue(Section As String, Key As String) As String Dim temp As New StringBuilder(500) Dim i As Integer = GetPrivateProfileString(Section, Key, "", temp, 500, Me.inipath) Return temp.ToString() End Function ''' <summary> ''' 验证文件是否存在 ''' </summary> ''' <returns>布尔值</returns> Public Function ExistINIFile() As Boolean Return System.IO.File.Exists(inipath) End Function End Class
Public Function ReadConfig(key As String) As String Dim cfg As new INIClass(ProjectPath & "config.ini") If cfg.ExistINIFile Then Return cfg.IniReadValue("Setting", key) End If End Function
Public Function WriteConfig(Key As String, Value As String) As Boolean Dim cfg As new INIClass(ProjectPath & "config.ini") If cfg.ExistINIFile Then cfg.IniWriteValue("Setting",Key, Value) Return True Else Return False End If End Function
|