Подтвердить что ты не робот

С# преобразовать бит в boolean

Привет.

У меня есть база данных MS SQL, это поле данных содержимого типа BIT.

это поле будет иметь значения 0 или 1 для представления false и true.

Я хочу, когда я получаю данные для преобразования значения, которое я получил в false или true, не используя if-condition для преобразования данных в false, если это 0 или true, если это 1.

Мне интересно, будет ли функция в С# делать это прямо, передавая ей значения бит?

4b9b3361

Ответ 1

В зависимости от того, как вы выполняете SQL-запросы, это может зависеть. Например, если у вас есть считыватель данных, вы можете напрямую читать логическое значение:

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);
        }
    }
}

Ответ 2

DataReader.GetBoolean(x)

или

Convert.ToBoolean(DataRow[x])

Ответ 3

Как вы извлекаете поля из базы данных?

Класс SqlDataReader имеет GetBoolean, который делает перевод для вас:

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

Ответ 4

GetBoolean сделает это автоматически.

Ответ 5

SqlDataSource из ASP.NET 2.0 возвращает 0 и 1 для полей BIT.

SqlDataSource из ASP.NET 4.0 возвращает соответствующую строку - Boolean.TrueString ("True") или Boolean.FalseString ("False").