我正在编写一个简单的函数,如果我的sqlDB连接正常,则返回true。我从XML文件中读取了我的数据库设置,并且我确定这部分是有效的,因为我的值(服务器,数据库,用户,密码)在读取xml后得到了一个值。当我想在我的连接字符串中使用这些变量时,我说使用它们没有任何价值吗?
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("server=@server ;uid=@user ;password=@password ;database=@database")
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 :(得分:0)
您是否尝试设置停止标记并逐步完成?什么是读入XmlReader的程序?所有If
会发生什么?
我确定根本没有触及为变量设置值的行。因此,您的变量仍未初始化。
尝试为它们设置默认值,你不会得到之前得到的错误......但是你必须找出哪些变量没有设置。
可能,根本没有档案......