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 fals开发者_开发百科e
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?
DataReader.GetBoolean(x)
or
Convert.ToBoolean(DataRow[x])
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);
}
}
}
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"));
GetBoolean will do this automatically.
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"
).
精彩评论