Obteniendo un poco de SqlServer en c #

Necesito get un bit de un server sql en c #. Intenté soluciones diferentes como:

bool active = rdr.GetSqlBinary(5); Int16 active = rdr.GetSqlBinary(5); 

Pero no puedo encontrar ninguna forma de get el Bit. ¿Alguien puede dar un ejemplo?

Si está seguro de que los valores de la columna nunca serán NULL , lo siguiente será el truco:

 bool active = rdr.GetBoolean(rdr.GetOrdinal("Active")); 

Si es posible que se devuelvan valores NULL :

 int oActive = rdr.GetOrdinal("Active"); bool? active = rdr.IsDBNull(oActive) ? (bool?)null : rdr.GetBoolean(oActive); 

Use el método GetSqlBoolean .

Actualizar

Asegúrate de convertir el valor devuelto como un boolean, es decir,

 var active = (bool)rdr.GetSqlBoolean(5); 

use GetFieldType para determinar ese tipo de datos a usar.

Llegué a la siguiente solución usando:

 bool active = (bool)rdr.GetSqlBoolean(rdr.GetOrdinal("Active")); 

Hay un método get público de SqlBoolean struct: IsTrue. Para que pueda usarlo de esta manera, para asegurarse de que el resultado sea boolean:

 bool active = rdr.GetSqlBoolean(5).IsTrue;