从BIT类型列获取布尔值的SQL查询
本文关键字:SQL 查询 布尔值 获取 BIT 类型 | 更新日期: 2023-09-27 18:18:48
我正面临着从我的数据库的columns
之一获得boolean
值的问题。我使用的是SQL Server 2008
,其中我创建了database
,如下所示:
表名:SysUser3
,列为:
ProductName || ProductId || SelectedProducts
列SelectedProducts
是BIT
类型的列,目前包含每个行项的False
值。
现在,我正在编写一个SQL Query
从我的'SelectedProducts'列获取布尔值
using (SqlConnection con = new SqlConnection(@"Data Source=.'SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|Database.mdf;User Instance=true"))
{
con.Open();
string cmdString = "SELECT ProductName,SelectedProducts FROM SysUser3";
using (SqlCommand cmd = new SqlCommand(cmdString, con))
{
using (SqlDataReader dataRead = cmd.ExecuteReader())
{
while (dataRead.Read())
{
items.Add(new ProductModel
{
Selected=(bool)dataRead["SelectedProducts"];
ProductName= dataRead["ProductName"].ToString()
});
}
}
}
}
我在这行得到一个错误,因此无法运行代码:
选择= (bool) dataRead("SelectedProducts");
我做对了吗?谁能告诉我代码出了什么问题?
分号放错地方了。改为逗号。它应该是:
while (dataRead.Read())
{
items.Add(new ProductModel()
{
Selected=(bool)dataRead["SelectedProducts"],
ProductName= dataRead["ProductName"].ToString()
});
}
您可以尝试GetBoolean(column_odrinal)
方法。
if(!dataRead.IsDBNull(1))
Selected=dataRead.GetBoolean(1);
或者如果返回值为null,您可以修复它。
Selected = (dataRead["SelectedProducts"] as bool?) ?? false ;