Поздравления.
У меня есть база данных SQL-сервера MS то поле данных содержания BIT
ввести.
это поле будет иметь также 0
или 1
значения для представления лжи и верный.
Я хочу, когда я получаю данные для преобразования значения, я добрался до false
или true
не используя если-условие преобразовать данные в false
если это 0
или true
если это 1
.
Я задаюсь вопросом, существует ли функция в C#, сделал бы это прямое путем передачи битовых значений ему?
Это может зависеть от того, как вы выполняете запросы 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);
}
}
}
Как вы извлекаете поля из базы данных?
Класс SqlDataReader
имеет метод GetBoolean
который выполняет перевод за вас:
bool yourBoolean = reader.GetBoolean(reader.GetOrdinal("Your_Bit_Column"));
DataReader.GetBoolean(x)
или
Convert.ToBoolean(DataRow[x])
SqlDataSource
из ASP.NET 2.0 возвращает 0
и 1
для полей BIT
.
SqlDataSource
из ASP.NET 4.0 возвращает соответствующую строку - Boolean.TrueString
( «True»
) или Boolean.FalseString
( «Ложь»
).