2010-05-04 43 views
21

Saludos.C# convertir bit a booleano

Tengo la base de datos del servidor MS SQL que el campo de datos de contenido del tipo BIT.

este campo tendrá 0 o 1 valores para presentar falso y verdadero.

que quiero cuando puedo recuperar los datos para convertir el valor de que llegué a false o true sin utilizar si la condición para convertir los datos a false si es 0 o true si es 1.

Me pregunto si hay una función en C# que haría esto directamente pasandole valores de bit.

Respuesta

26

Dependiendo de cómo está realizando la consulta SQL que puede depender. Por ejemplo, si usted tiene un data reader usted podría directamente read a boolean value:

using (var conn = new SqlConnection(ConnectionString)) 
using (var cmd = conn.CreateCommand()) 
{ 
    conn.Open(); 
    cmd.CommandText = "SELECT isset_field FROM sometable"; 
    using (var reader = cmd.ExecuteReader()) 
    { 
     while (reader.Read()) 
     { 
      bool isSet = reader.GetBoolean(0); 
     } 
    } 
} 
12

¿Cómo extrae los campos de la base de datos?

La clase tiene un método SqlDataReaderGetBoolean el que hace la traducción para usted:

bool yourBoolean = reader.GetBoolean(reader.GetOrdinal("Your_Bit_Column")); 
24
DataReader.GetBoolean(x) 

o

Convert.ToBoolean(DataRow[x]) 
+6

'Convert.ToBoolean ((byte) 1);' returns 'true' – abatishchev

2

SqlDataSource desde ASP.NET 2.0 y vuelve 01 para BIT campos.

SqlDataSource desde ASP.NET 4.0 devuelve cadena apropiada - Boolean.TrueString ("True") o Boolean.FalseString ("False").

+1

bit también puede ser NULL –

+0

@Guillaume: tipo SQL BIT o byte de tipo .NET? – abatishchev

+0

Bit de tipo SQL: http://msdn.microsoft.com/en-us/library/aa225961(v=sql.80).aspx –