问候。
我的MS SQL服务器数据库的内容数据字段为BIT
类型。
此字段的0
或1
值将显示为false和true。
我希望在检索数据时将我得到的值转换为false
或true
,而不使用if-condition将数据转换为false
,如果它是{{1}如果是0
,则为true
。
我想知道C#中是否有函数会通过将位值传递给它来直接执行此操作吗?
答案 0 :(得分:30)
DataReader.GetBoolean(x)
或
Convert.ToBoolean(DataRow[x])
答案 1 :(得分:27)
具体取决于您执行SQL查询的方式。例如,如果您有data reader,则可以直接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);
}
}
}
答案 2 :(得分:12)
如何从数据库中提取字段?
SqlDataReader
班级有一个GetBoolean
方法可以为您进行翻译:
bool yourBoolean = reader.GetBoolean(reader.GetOrdinal("Your_Bit_Column"));
答案 3 :(得分:5)
GetBoolean会自动执行此操作。
答案 4 :(得分:2)
SqlDataSource
会为0
字段返回1
和BIT
。
SqlDataSource
返回相应的字符串 - Boolean.TrueString
("True"
)或Boolean.FalseString
("False"
)。