views:

521

answers:

5

Greetings.

I have MS SQL server database that content data field of BIT type.

this field will have either 0 or 1 values to present false and true.

I want when I retrieve the data to convert the value of 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?

+3  A: 

GetBoolean will do this automatically.

BlueRaja - Danny Pflughoeft
+3  A: 

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"));
LukeH
+2  A: 

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);
        }
    }
}
Darin Dimitrov
+3  A: 
DataReader.GetBoolean(x)

or

Convert.ToBoolean(DataRow[x])
Robin Day
`Convert.ToBoolean((byte)1);` returns `true`
abatishchev
+1  A: 

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").

abatishchev