С# преобразовать бит в boolean
Привет.
У меня есть база данных MS SQL, это поле данных содержимого типа BIT
.
это поле будет иметь значения 0
или 1
для представления false и true.
Я хочу, когда я получаю данные для преобразования значения, которое я получил в false
или true
, не используя if-condition для преобразования данных в false
, если это 0
или true
, если это 1
.
Мне интересно, будет ли функция в С# делать это прямо, передавая ей значения бит?
Ответы
Ответ 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"
).