Sql 检查数据库设置-->;变量'&书信电报;可变名称>';在指定值之前使用

Sql 检查数据库设置-->;变量'&书信电报;可变名称>';在指定值之前使用,sql,xml,database,Sql,Xml,Database,我正在编写一个简单的函数,如果sqlDB连接正常,它将返回true。我从一个XML文件中读取了我的DB设置,我确信这部分是有效的,因为我的值(服务器、数据库、用户、密码)在读取XML后得到了一个赋值。当我想在我的连接中使用这些变量时,字符串表示我在使用它们时没有任何值 Public Function TestDBconnection() As Boolean 'Read settings from XMLfile' Dim server, database, user, pas

我正在编写一个简单的函数,如果sqlDB连接正常,它将返回true。我从一个XML文件中读取了我的DB设置,我确信这部分是有效的,因为我的值(服务器、数据库、用户、密码)在读取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

你有没有试着设置一个停车标志,一步一步地走过去?程序读入XmlReader的是什么?如果,所有的
都会发生什么

我确信你给变量设置一个值的那几行根本没有被碰过。因此,变量保持未初始化状态

尝试为它们设置默认值,您将不会得到以前的错误。。。但您必须找出哪些变量没有设置


可能是,根本没有文件

您是否尝试设置停车标志并一步一步地通过?程序读入XmlReader的是什么?如果
,所有的
都会发生什么

我确信你给变量设置一个值的那几行根本没有被碰过。因此,变量保持未初始化状态

尝试为它们设置默认值,您将不会得到以前的错误。。。但您必须找出哪些变量没有设置


可能是,根本没有文件

请标记该语言(我想它是VB.Net)…请标记该语言(我想它是VB.Net)…是的,我在创建新的sqlconnection之前已经用stop甚至messagebox进行了测试。messagebox给了我所有的值(server、db、user、pass),就像在xml文件中设置的一样。这就是为什么我觉得奇怪的原因,他一直告诉我这些变量没有价值?是的,在我创建新的sqlconnection之前,我已经用stop甚至messagebox进行了测试。messagebox给了我所有的值(server、db、user、pass),就像在xml文件中设置的一样。这就是为什么我觉得奇怪,他一直告诉我这些变量没有价值?