none
¿En SQL Server qué tipo debo definir para una columna que debe guardar valores tipo veradero falso? RRS feed

Respuestas

  • En el servidor, el campo es de tipo BIT.

    Y desde el cliente, si usas una sentencia escrita directamente en un SqlCommand, entonces tienes que meterle un 1 o un 0 para representar verdadero o falso. Pero si usas Linq-to-Sql o Entity Framework, entonces la propia capa de abstracción ya traduce el valor a un Boolean, y basta con que le asignes True o False.

    • Marcado como respuesta James-2016 jueves, 28 de abril de 2016 10:15
    jueves, 28 de abril de 2016 9:28
  • Sí se puede recuperar como bool.

    Si utilizas un DataReader puedes hacer un

    Dim valor As Boolean = dataReader.GetBoolean(columnIndex)

    Si los has volcado en un DataTable deberías poder asignar el valor del DataRow a la variable Boolean. Aunque es posible que tengas que utilizar un CType:

    Dim valor As Boolean = CType(row(columnIndex), Boolean)
    


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta James-2016 jueves, 28 de abril de 2016 10:15
    jueves, 28 de abril de 2016 9:51
  • Algo que sí tienes que tener en cuenta es que el tipo de datos bit admite valores nulos y el Boolean no.

    Ahí tendrías 3 opciones:

    - Controlar los valores null y darle a la variable un valor por defecto

    - Hacer el campo en base de datos obligatorio

    - Declarar la variable como "nullable" (Dim valor As Boolean?). Aún así tendrías que controlar los valores DBNull.Value para convertirlos a Nothing


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta James-2016 jueves, 28 de abril de 2016 10:15
    jueves, 28 de abril de 2016 9:54

Todas las respuestas

  • En el servidor, el campo es de tipo BIT.

    Y desde el cliente, si usas una sentencia escrita directamente en un SqlCommand, entonces tienes que meterle un 1 o un 0 para representar verdadero o falso. Pero si usas Linq-to-Sql o Entity Framework, entonces la propia capa de abstracción ya traduce el valor a un Boolean, y basta con que le asignes True o False.

    • Marcado como respuesta James-2016 jueves, 28 de abril de 2016 10:15
    jueves, 28 de abril de 2016 9:28
  • Lo lógico es utilizar el tipo bit.


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    jueves, 28 de abril de 2016 9:29
  • Sí, lo guardaría y recuperaría a través de un SqlCommand.

    ¿Ok, para guardarlo tendría que poner entonces 1 o 0 y para recuperarlo puedo asignarle de frente el valor a una variable boolean (¿se corresponden con verdadero falso?) o tendría que hacer la comparación, si es 0 es true y si es uno es false?

    jueves, 28 de abril de 2016 9:44
  • Sí se puede recuperar como bool.

    Si utilizas un DataReader puedes hacer un

    Dim valor As Boolean = dataReader.GetBoolean(columnIndex)

    Si los has volcado en un DataTable deberías poder asignar el valor del DataRow a la variable Boolean. Aunque es posible que tengas que utilizar un CType:

    Dim valor As Boolean = CType(row(columnIndex), Boolean)
    


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta James-2016 jueves, 28 de abril de 2016 10:15
    jueves, 28 de abril de 2016 9:51
  • Algo que sí tienes que tener en cuenta es que el tipo de datos bit admite valores nulos y el Boolean no.

    Ahí tendrías 3 opciones:

    - Controlar los valores null y darle a la variable un valor por defecto

    - Hacer el campo en base de datos obligatorio

    - Declarar la variable como "nullable" (Dim valor As Boolean?). Aún así tendrías que controlar los valores DBNull.Value para convertirlos a Nothing


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta James-2016 jueves, 28 de abril de 2016 10:15
    jueves, 28 de abril de 2016 9:54
  • Creo que la segunda opción es más práctica para lo que necesito, fuerzo en la base de datos a uno de los valores necesariamente para no tener que controlar los valores null.

    Ya quedó.

    Gracias a ambos por sus respuestas.

    jueves, 28 de abril de 2016 10:14