我有一个Microsoft SQL Server数据库,其中包含一个BIT
类型的数据字段。
该字段将具有0
或1
值来表示false和true。
当我检索数据时,我想将获取到的值转换为false
或true
,而不使用if条件将数据转换为false
(如果它是0
)或true
(如果它是1
)。
我想知道在C#中是否有一个函数可以通过传递位值直接实现这个目的?
DataReader.GetBoolean(x)
或者Convert.ToBoolean(DataRow[x])
根据您执行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);
}
}
}
Read()
而正常工作,例如:bool isSet = cmd.ExecuteReader().GetBoolean(0);
? - dakabSqlDataReader
类有一个GetBoolean
方法,可以为你进行翻译:bool yourBoolean = reader.GetBoolean(reader.GetOrdinal("Your_Bit_Column"));
ASP.NET 2.0
的SqlDataSource
在处理BIT
类型字段时,返回值为0
或1
。
ASP.NET 4.0
的SqlDataSource
处理BIT
类型字段时,返回适当的字符串值-Boolean.TrueString
("True"
)或 Boolean.FalseString
("False"
)。
Convert.ToBoolean((byte)1);
返回true
。 - abatishchev