我在从我的数据库的boolean
之一获取columns
值时遇到问题。我正在使用SQL Server 2008
我在其中创建了database
,如下所示:
表名:SysUser3
和列为:
产品名称|| 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()
});
}
}
}
}
我在此行收到错误,因此无法运行代码:
选定=(布尔)DATAREAD [ “SelectedProducts”];
我做得对吗?谁能告诉我代码中有什么问题?
答案 0 :(得分:3)
您可以尝试GetBoolean(column_odrinal)
方法。
if(!dataRead.IsDBNull(1))
Selected=dataRead.GetBoolean(1);
如果返回值为null,则可以修复它。
Selected = (dataRead["SelectedProducts"] as bool?) ?? false ;
答案 1 :(得分:3)
你有一个错误的分号。将其更改为逗号。 它应该是:
while (dataRead.Read())
{
items.Add(new ProductModel()
{
Selected=(bool)dataRead["SelectedProducts"],
ProductName= dataRead["ProductName"].ToString()
});
}