2016-03-06 50 views
1

我在寫一個簡單的函數返回我如果我的sqlDB連接是正確的。我從一個XML文件讀取我的數據庫設置,並且我確信這部分工作是因爲我的值(服務器,數據庫,用戶,密碼)在我的xml讀取後得到一個值。當我想在連接字符串中使用這些變量時,我說我沒有任何價值地使用它們?檢查數據庫設置 - >變量'<variablename>'被使用之前,它已被分配一個值

Public Function TestDBconnection() As Boolean 

    'Read settings from XMLfile' 
    Dim server, database, user, password As String 

    Try 
     If System.IO.File.Exists(defaultdirectory & "\Settings.xml") = True Then 
      Using XmlSettingsReader As XmlReader = New XmlTextReader(defaultdirectory & "\Settings.xml") 
       While (XmlSettingsReader.Read()) 
        Dim type = XmlSettingsReader.NodeType 
        If (type = XmlNodeType.Element) Then 
         If (XmlSettingsReader.Name = "Server") Then 
          server = XmlSettingsReader.ReadInnerXml.ToString 
         End If 
         If (XmlSettingsReader.Name = "Database") Then 
          database = XmlSettingsReader.ReadInnerXml.ToString 
         End If 
         If (XmlSettingsReader.Name = "User") Then 
          user = XmlSettingsReader.ReadInnerXml.ToString 
         End If 
         If (XmlSettingsReader.Name = "Password") Then 
          password = XmlSettingsReader.ReadInnerXml.ToString 
         End If 
        End If 
       End While 
       XmlSettingsReader.Close() 
      End Using 
     End If 

     Using sqlcon As SqlConnection = New SqlConnection("[email protected] ;[email protected] ;[email protected] ;[email protected]") 
      sqlcmd.Parameters.AddWithValue("@server", server) 
      sqlcmd.Parameters.AddWithValue("@user", user) 
      sqlcmd.Parameters.AddWithValue("@database", database) 
      sqlcmd.Parameters.AddWithValue("@password", password) 
      sqlcon.Open() 
      Return (sqlcon.State = ConnectionState.Open) 
      sqlcon.Close() 
     End Using 
    Catch result1 As SqlException 
     Return False 

    Catch result2 As Exception 
     Return False 
    End Try 

End Function 
+0

請標記語言(我想這是VB.Net)... – Shnugo

回答

0

您是否嘗試設置停止標記並逐步執行?什麼是程序讀入XmlReader?所有If會發生什麼?

我敢肯定,您爲變量設置值的行根本沒有觸及。因此你的變量不會被初始化。

嘗試設置默認值給他們,你不會得到你之前得到的錯誤......但你必須找出哪些變量沒有設置。

也許,是沒有文件在所有...

+0

是的,我已經止損,甚至有一個消息正確測試在創建新的sqlconnection之前。該消息框給我所有的值(服務器,數據庫,用戶,通行證),就像他們在我的XML文件中設置。這就是爲什麼我覺得奇怪他總是告訴我這些變量沒有價值? – user2173280

+0

@ user2173280。可能是這個被稱爲不止一次... – Shnugo

相關問題