none
Error por tipo de datos

    Pregunta

  • Saludos a todos:

    Estoy intentando guardar desde VisualStudio 2015 a SqlServer 2008 a un campo BIT llamado 'Cesado' desde un control CheckBox. Como ven en la imagen no lo reconoce.

    En mi Capa Entidad ya declaré:

        Private _Cesado As Byte()
        Public Property Cesado As Byte()
            Get
                Return _Cesado
            End Get
            Set(ByVal value As Byte())
                _Cesado = value
            End Set
        End Property

    Con anterioridad hice lo mismo para otro formulario y si funciona no me salta ningún error.

    Favor me puedan decir que podria pasar. Muchas gracias.




    viernes, 11 de noviembre de 2016 20:05

Respuestas

  • El principal problema está en los paréntesis de detrás de Byte(). Esto declara el campo como "Array de bytes". Y claro, el compilador se queja de que no sabe convertir el Boolean en array de bytes. Tienes que meditar un poco más qué es lo que quieres guardar en la propiedad Cesado; lo más lógico sería declararla de tipo Boolean en lugar de Byte(), con lo que no se requeriría ninguna conversión.

    A la hora de grabar en base de datos, si estás usando algún ORM tal como Entity Framework, ya te convierte automáticamente el campo BIT de la base de datos en una variable Boolean en memoria. Si, por el contrario, construyes las sentencias SQL por tu cuenta, entonces el campo bit hay que tratarlo como si fuera numérico, grabando un 0 o un  1, cosa que puedes fácilmente generar desde el Boolean con un IIF.

    viernes, 11 de noviembre de 2016 21:11

Todas las respuestas

  • El principal problema está en los paréntesis de detrás de Byte(). Esto declara el campo como "Array de bytes". Y claro, el compilador se queja de que no sabe convertir el Boolean en array de bytes. Tienes que meditar un poco más qué es lo que quieres guardar en la propiedad Cesado; lo más lógico sería declararla de tipo Boolean en lugar de Byte(), con lo que no se requeriría ninguna conversión.

    A la hora de grabar en base de datos, si estás usando algún ORM tal como Entity Framework, ya te convierte automáticamente el campo BIT de la base de datos en una variable Boolean en memoria. Si, por el contrario, construyes las sentencias SQL por tu cuenta, entonces el campo bit hay que tratarlo como si fuera numérico, grabando un 0 o un  1, cosa que puedes fácilmente generar desde el Boolean con un IIF.

    viernes, 11 de noviembre de 2016 21:11
  • Hola Alberto Poblacion

    Gracias por tu respuesta, debí percatarme de ese error del paréntesis. Te reitero mis agradecimientos.

    Saludos.

    sábado, 12 de noviembre de 2016 5:19