none
Error "String[44]: la propiedad Size tiene un tamaño no válido de 0" con sqlserver y vb.net RRS feed

  • Pregunta

  • Hola a todos:

    Estoy haciendo esta consulta en vb.net utilizando el motor de base de datos SQL Server y al llamar a la instrucción execute reader me aparece el siguiente mensaje: (Error "String[44]: la propiedad Size tiene un tamaño no válido de 0") 

    Existen soluciones en este mismo foro que parece que lo solucionan pero en mi caso no lo estoy arreglando. Os adjunto aquí abajo el código a ver si podéis ver el error.

    “descripcionDatos” es la columna de la tabla Instalacion, y pordefecto es por el dato que queremos filtrar. La línea en negrita es la línea que he cambiado porque lo vi en otra parte de este mismo foro. Pero a mi no me ha ayudado. El Sqlcommand comando se define e inicializa fuera de esta función. Y se pasa como parámetro. Esta función esta dentro de una transacción donde todas las consultas se hacen con el comando que se pasa como parámetro.  

     

    Muchismas gracias

     

     

     

     Public Shared Function consultarBDInstalacion(ByVal comando As SqlCommand, ByVal tipo As String) As SqlDataReader

           

     

    Dim p101 As SqlParameter = New SqlParameter("@consulta",      SqlDbType.Char, 1, ParameterDirection.Output)

            comando.CommandType = CommandType.Text

            comando.Parameters.Add(p101)

      comando.CommandText() = "SELECT * FROM Instalacion WHERE   descripcionDatos LIKE '%pordefecto%'"

               

     

            Dim lector1 As SqlDataReader

            Try

                lector1 = comando.ExecuteReader()

            Catch ex As Exception

                MessageBox.Show(ex.ToString)

            End Try

            consultarBDInstalacion = lector1

     

        End Function

    jueves, 27 de enero de 2011 16:56

Todas las respuestas

  • Aparentemente el problema es esta línea:

    SqlDbType.Char, 1, ParameterDirection.Output)

    Cambia el 1 por 30 o más caracteres.

    Por otro lado, veo que estas usando commandtype.text. Eso es bueno para comenzar y aprender. Pero a la larga es mucho mejor utilizar procedimientos almacenados.

    Te va a ahorrar muchos problemas de performance, legibilidad, mantenimiento de código a futuro.


    MVP MCT MCTS Daniel Calbimonte

    http://elpaladintecnologico.blogspot.com
    • Propuesto como respuesta dani671MVP viernes, 28 de enero de 2011 12:13
    viernes, 28 de enero de 2011 12:13