none
Clase conexión, USING

    Pregunta

  • Buenos días, buenas tardes y buenas noches.

    Estoy teniendo un problemita con una clase de conexión que estoy tratando de modificar. En principio, la clase es símple, conecta y desconecta.

    Protected Function conectado()
            Try
                cnn = New SqlConnection("Data Source=sql.miservidor.com;Initial Catalog=mibase;User ID=miuser;Password=mipassword;")
                    cnn.Open()
                    Return True
            Catch ex As Exception
                MessageBox.Show("Imposible establecer conexión con el servidor en este momento", "Error de red", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Return False
            End Try
        End Function
    
        Protected Function desconectado()
            Try
                If cnn.State = ConnectionState.Open Then
                    cnn.Close()
                    Return True
                Else
                    Return False
                End If
            Catch ex As Exception
                MessageBox.Show("Imposible realizar la desconexión, verifique!", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Warning)
                Return False
            End Try
        End Function

    0 drama hasta ahí.

    El tema es que necesito poder armar la conexión desde un string, ya que primero la clase abre un xml, lo desencripta, y carga los valores del xml en variables. Necesito generar la cadena en función de estas variables.

    Protected Function conectado()
            Try
                loaddata()
                Dim connectionString As String = $"Data Source={Me.ip};database={Me.bd};User ID={Me.user};Password={Me.pass}"
                Using connection As SqlConnection = New SqlConnection(connectionString)
                    connection.Open()
                    Return True
                End Using
            Catch ex As Exception
                MessageBox.Show("Imposible establecer conexión con el servidor en este momento", "Error de red", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Return False
            End Try
        End Function

    No me abre la conexión.. execute nonquery necesita una conexión activa... bla bla..

    El loaddata llama a esta función

    Private Sub loaddata()
            Dim enumerator As IEnumerator
            Dim document As New XmlDocument
            document.Load("gate.xml")
            Dim list As XmlNodeList = document.DocumentElement.SelectNodes("/servidor")
            Try
                enumerator = list.GetEnumerator
                Do While enumerator.MoveNext
                    Dim current As XmlNode = DirectCast(enumerator.Current, XmlNode)
                    Dim str1 As String = current.ChildNodes.Item(0).InnerText
                    Dim str2 As String = current.ChildNodes.Item(2).InnerText
                    Dim str3 As String = current.ChildNodes.Item(3).InnerText
                    Dim str4 As String = current.ChildNodes.Item(4).InnerText
                    ip = Me.Desencriptar(str1)
                    user = Me.Desencriptar(str2)
                    pass = Me.Desencriptar(str3)
                    bd = Me.Desencriptar(str4)
                Loop
            Finally
                If TypeOf enumerator Is IDisposable Then
                    TryCast(enumerator, IDisposable).Dispose()
                End If
            End Try
        End Sub

    El xml está bien generado y los valores de los childnodes son correctos, (el 1 faltante corresponde a otro campo).

    Desde ya agradezco cualquier ayudita.

    Un saludo


    • Editado Alesx de Souza martes, 16 de abril de 2019 23:09 error en el codigo
    martes, 16 de abril de 2019 22:53

Todas las respuestas