2010-05-04 43 views
21

Chúc mừng.C# chuyển bit sang boolean

Tôi có cơ sở dữ liệu máy chủ MS SQL có trường dữ liệu nội dung là loại BIT.

trường này sẽ có các giá trị 0 hoặc 1 để hiển thị sai và đúng.

tôi muốn khi tôi lấy dữ liệu để chuyển đổi giá trị của tôi đã false hoặc true mà không sử dụng nếu điều kiện để chuyển đổi dữ liệu đến false nếu nó là 0 hoặc true nếu nó là 1.

Tôi tự hỏi liệu có một hàm trong C# sẽ thực hiện điều này trực tiếp bằng cách truyền các giá trị bit cho nó?

Trả lời

26

Tùy thuộc vào làm thế nào bạn thực hiện truy vấn SQL nó có thể phụ thuộc. Ví dụ nếu bạn có một data reader bạn có thể trực tiếp 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); 
     } 
    } 
} 
5

GetBoolean sẽ tự động thực hiện việc này.

12

Làm cách nào để bạn trích xuất các trường từ cơ sở dữ liệu?

Lớp SqlDataReader có một phương pháp GetBoolean mà hiện các dịch cho bạn:

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

hoặc

Convert.ToBoolean(DataRow[x]) 
+6

'Chuyển đổi.ToBoolean ((byte) 1);' trả về 'true' – abatishchev

2

SqlDataSource từ ASP.NET 2.0 trở 01 cho BIT lĩnh vực.

SqlDataSource từ ASP.NET 4.0 trả về chuỗi thích hợp - Boolean.TrueString ("True") hoặc Boolean.FalseString ("False").

+1

bit cũng có thể là NULL –

+0

@Guillaume: Loại byte BIT hoặc .NET loại byte? – abatishchev

+0

Loại bit bit: http://msdn.microsoft.com/en-us/library/aa225961(v=sql.80).aspx –

Các vấn đề liên quan