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?
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);
}
}
}
DataReader.GetBoolean(x)
ou
Convert.ToBoolean(DataRow[x])
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"));
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"
).