Reputation: 5851
I have a Microsoft SQL Server database that contains a data field of BIT
type.
This field will have either 0
or 1
values to represent false and true.
I want when I retrieve the data to convert the value I got to false
or true
without using if-condition to convert the data to false
if it is 0
or true
if it is 1
.
I'm wondering if there is a function in C# would do this direct by passing bit values to it?
Upvotes: 35
Views: 117338
Reputation: 100248
SqlDataSource
from ASP.NET 2.0 returns 0
and 1
for BIT
fields.
SqlDataSource
from ASP.NET 4.0 returns appropriate string - Boolean.TrueString
("True"
) or Boolean.FalseString
("False"
).
Upvotes: 3
Reputation: 1038720
Depending on how are you performing the SQL queries it may depend. For example if you have a data reader you could directly 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);
}
}
}
Upvotes: 35
Reputation: 269318
How are you extracting the fields from the database?
The SqlDataReader
class has a GetBoolean
method which does the translation for you:
bool yourBoolean = reader.GetBoolean(reader.GetOrdinal("Your_Bit_Column"));
Upvotes: 14