1. T-SQL中的布尔值
在T-SQL中,使用bit来表达布尔值。
(bit在SQL Server中并不一定存储为一位;在实际情况中,往往bit被存储为一个字节和多个位。)
在SQL Server Browser (2008)中可以直接使用True/False作为bit列的输入值,SQL Server会自动把输入的True/False转换为1/0。
2. 在C#中将bit转换为bool
在具体的实践过程中,我发现.NET 3.0/3.5的ADO可以自动将bit类型转换为True/False的形式而不需要任何额外的代码。同时,反向的,使用SqlParameter也可以直接将bool插入到SQL Server中而不需要额外的代码。
bit与bool之间的转换在.NET 3.0/3.5的ADO中似乎可以自动完成。
贴出一些我试验用的代码段:
试验的表结构:
CREATE TABLE BitTest
(
Test BIT,
)
C#代码:
取出bit类型的数据
SqlConnection connection = new SqlConnection("Data Source=localhost;Initial Catalog=Test;Integrated Security=SSPI;");
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM BitTest", connection);
DataSet data = new DataSet();
adapter.Fill(data);
在显示数据时只需要使用ToString()即可
Console.WriteLine(data.Tables[0].Rows[0][0].ToString());
在插入数据时,SqlParameter可以自动完成bool到bit的转换
SqlCommand command = new SqlCommand("INSERT INTO BitTest ([Test]) VALUES (@test)", connection);
command.Parameters.Add(new SqlParameter("@test", false));
connection.Open();
command.ExecuteNonQuery();
connection.Close();