none
Necesito configurar el appconfig. RRS feed

  • Pregunta

  • Hola muy buenas, es que necesito configurar mi app config, ya tengo los pasos efectuados, solo que a la hora de poner todo, me tira un error en el sqlconnection(msCadenaSQL) me dice que "El valor de tipo 'SqlConnection' no se puede convertir en string'

    Este es mi codigo de app config.

    <add name="msCadenaSQL" connectionString="Data Source=DESKTOP-UFPEG9I\SQLEXPRESS;Initial Catalog=INTENTO2;Integrated Security=True"
                providerName="System.Data.SqlClient" />
        </connectionStrings>

    Este es el codigo de la consulta.

     Protected configuracion As ConnectionStringSettings = ConfigurationManager.ConnectionStrings("msCadenaSQL")
        Dim msCadenaSQL As New SqlConnection(configuracion.ConnectionString)

     Private Sub btnbuscar_Click(sender As Object, e As EventArgs) Handles btnbuscar.Click

    Me.Cursor = Cursors.WaitCursor
            Dim lbHayFiltro As Boolean = False
            Dim lsQuery As String = "Select * From DATOS"
            If Me.txtapellido.Text.Length > 0 Then
                lsQuery &= " Where [1ER APELLIDO] Like '%" & Me.txtapellido.Text & "%'"
                lbHayFiltro = True
            End If
            If Me.txtsegundoapellido.Text.Length > 0 Then
                If lbHayFiltro = True Then
                    lsQuery &= " And "
                Else
                    lsQuery &= " Where "
                    lbHayFiltro = True
                End If
                lsQuery &= "[2DO APELLIDO] Like '%" & Me.txtsegundoapellido.Text & "%'"
            End If
            If Me.txtnombre.Text.Length > 0 Then
                If lbHayFiltro = True Then
                    lsQuery &= " And "
                Else
                    lsQuery &= " Where "
                End If
                lsQuery &= "NOMBRE Like '%" & Me.txtnombre.Text & "%'"
            End If
            Me.DataGridView1.DataSource = lF_dtActualizaGridCadena(lsQuery)
            If Me.DataGridView1.RowCount = 0 Then
                MessageBox.Show("NO se encontraron coincidencias", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If
        End Sub
        Private Function lF_dtActualizaGridCadena(ByVal vsQuery As String) As DataTable
            If (vsQuery = String.Empty) Then
                Return Nothing
            End If
            Try
                Dim loDataTable As New DataTable
                Using loConexion As New SqlConnection(msCadenaSQL)
                    Using loDataAdapter As New SqlDataAdapter(vsQuery, loConexion)
                        loDataAdapter.Fill(loDataTable)
                    End Using
                End Using
                Return loDataTable
            Catch ex As Exception
                MessageBox.Show(ex.Message, "lF_dtActualizaGridCadena", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Return Nothing
            End Try
        End Function

    El error se da en lo que esta con negrita.

    lunes, 13 de noviembre de 2017 16:44

Respuestas

  • Ten en cuenta que al hacer

    Dim msCadenaSQL As New SqlConnection(configuracion.ConnectionString)

    Lo que estás creando es la conexión utilizando la cadena que tenga la configuración. Si lo que quieres es almacenar en msCadenaSQL la cadena de conexión obtenida de configuración para abrir la conexión en 
    Using loConexion As New SqlConnection(msCadenaSQL)
    lo que tienes que hacer es definir msCadena como

    Dim msCadenaSQL As String = configuracion.ConnectionString

    y entonces si podrás hacer

    Using loConexion As New SqlConnection(msCadenaSQL)
    ...


    Saludos, Javier J

    • Propuesto como respuesta Willams Morales lunes, 13 de noviembre de 2017 17:03
    • Marcado como respuesta Ruben_Mendoza lunes, 13 de noviembre de 2017 17:32
    lunes, 13 de noviembre de 2017 16:58

Todas las respuestas

  • Ten en cuenta que al hacer

    Dim msCadenaSQL As New SqlConnection(configuracion.ConnectionString)

    Lo que estás creando es la conexión utilizando la cadena que tenga la configuración. Si lo que quieres es almacenar en msCadenaSQL la cadena de conexión obtenida de configuración para abrir la conexión en 
    Using loConexion As New SqlConnection(msCadenaSQL)
    lo que tienes que hacer es definir msCadena como

    Dim msCadenaSQL As String = configuracion.ConnectionString

    y entonces si podrás hacer

    Using loConexion As New SqlConnection(msCadenaSQL)
    ...


    Saludos, Javier J

    • Propuesto como respuesta Willams Morales lunes, 13 de noviembre de 2017 17:03
    • Marcado como respuesta Ruben_Mendoza lunes, 13 de noviembre de 2017 17:32
    lunes, 13 de noviembre de 2017 16:58
  • Ten en cuenta que al hacer

    Dim msCadenaSQL As New SqlConnection(configuracion.ConnectionString)

    Lo que estás creando es la conexión utilizando la cadena que tenga la configuración. Si lo que quieres es almacenar en msCadenaSQL la cadena de conexión obtenida de configuración para abrir la conexión en 
    Using loConexion As New SqlConnection(msCadenaSQL)
    lo que tienes que hacer es definir msCadena como

    Dim msCadenaSQL As String = configuracion.ConnectionString

    y entonces si podrás hacer

    Using loConexion As New SqlConnection(msCadenaSQL)
    ...


    Saludos, Javier J

    Gracias con eso me solucionaste el resto.
    lunes, 13 de noviembre de 2017 17:33