none
Error "String[44]: la propiedad Size tiene un tamaño no válido de 0" 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

    viernes, 28 de enero de 2011 7:54

Todas las respuestas

  • No comprendo por qué añades el parámetro de tipo output al command, si la consulta que ejecutas no tiene ningún parámetro. Puede que por eso se esté liando y te esté devolviendo un error. Prueba a quitar de tu código esa parte, que no se usa para nada, a ver si así no falla.

    Otra cosa: Este código debería dar un error de compilación, debido a los paréntesis que tienes al final de CommandText. CommandText es una propiedad escalar, no debería llevar paréntesis.

    viernes, 28 de enero de 2011 8:21
  • Hola Alberto,

     

    gracias por responer, meto esa linea unicamente para dar un valor a la propiedad size del parametro, ya que en el error me avisa que la propiedad size tiene una valor 0 no válido. Y en otros foros encontre que así le podia introducir el valor que qusiera a esa propiedad. Estoy quitando esa parte del codigo y me sigue dando el mismo error.

    ¿Crees que puede haber otra solución? Yo no se qué más probar,

     

    Muchisimas gracias,

     

    viernes, 28 de enero de 2011 8:36
  • Pero si tu sentencia SQL no contiene ningún parámetro. ¿Cómo va a necesitar un valor para la propiedad Size del parámetro, si no tiene parámetro? Tiene que haber algún error en algún otro sitio que no se ve en el código que has copiado. Tengo la sensación de que ese no es el código auténtico, sino que lo has "simplificado" al copiarlo en el mensaje (entre otras cosas porque CommandText() daría un error de compilación). El error tiene que estar en alguna de las partes omitidas.

     

    viernes, 28 de enero de 2011 9:27