web-dev-qa-db-fra.com

C # convertir le bit en booléen

Salutations.

J'ai une base de données MS SQL Server qui contient un champ de données de type BIT.

ce champ aura soit 0 ou 1 valeurs à présenter fausses et vraies.

Je veux quand je récupère les données pour convertir la valeur de je suis arrivé à false ou true sans utiliser la condition if pour convertir les données en false si c'est 0 ou true si c'est 1.

Je me demande s'il y a une fonction en C # qui le ferait directement en lui passant des valeurs binaires?

25
Eyla

Selon la façon dont vous exécutez les requêtes SQL, cela peut dépendre. Par exemple, si vous avez un lecteur de données vous pouvez directement lire une valeur booléenne :

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);
        }
    }
}
28
Darin Dimitrov
DataReader.GetBoolean(x)

ou

Convert.ToBoolean(DataRow[x])
33
Robin Day

Comment extrayez-vous les champs de la base de données?

La classe SqlDataReader a une méthode GetBoolean qui fait la traduction pour vous:

bool yourBoolean = reader.GetBoolean(reader.GetOrdinal("Your_Bit_Column"));
13
LukeH

GetBoolean fera cela automatiquement.

SqlDataSource d'ASP.NET 2.0 renvoie 0 et 1 pour BIT champs.

SqlDataSource d'ASP.NET 4.0 renvoie la chaîne appropriée - Boolean.TrueString ("True") ou Boolean.FalseString ("False").

2
abatishchev