2010-05-04 7 views
21

Pozdrowienia.C# przekonwertuj bit na boolean

Mam bazę danych serwera MS SQL, które zawiera dane pola o typie BIT.

to pole będzie miało wartości 0 lub 1, aby przedstawić wartości false i true.

chcę kiedy pobierania danych do konwersji wartości od Muszę false lub true bez użycia If-warunek do konwersji danych do false jeśli jest 0 lub true jeśli jest 1.

Zastanawiam się, czy istnieje funkcja w C# zrobiłby to bezpośrednio, przekazując do niej wartości bitowe?

Odpowiedz

26

zależności od tego jak ty wykonywania zapytań SQL może zależeć. Na przykład, jeśli masz data reader mogłeś bezpośrednio 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); 
     } 
    } 
} 
12

W jaki sposób wyodrębniasz pola z bazy danych?

Klasa SqlDataReader ma GetBoolean metodę, która robi to tłumaczenie dla Ciebie:

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

lub

Convert.ToBoolean(DataRow[x]) 
+6

'Convert.ToBoolean ((bajt) 1);' zwraca 'true' – abatishchev

2

SqlDataSource z ASP.NET 2.0 powraca 0 i 1 dla BIT dziedzinach.

SqlDataSource z ASP.NET 4.0 zwrotów odpowiedni ciąg - Boolean.TrueString ("True") lub Boolean.FalseString ("False").

+1

bit może również mieć wartość NULL –

+0

@Guillaume: bajt typu BIT typu SQL lub .NET? – abatishchev

+0

Typ SQL Bit: http://msdn.microsoft.com/en-us/library/aa225961(v=sql.80).aspx –