2017-08-11 162 views
1

我有一个表的值位类型的数据包括两个值0和1,我想读入复选框,我有下面的代码,但如果0或1它总是选择并穿上复选框。如何阅读它复选框?请帮忙。非常感谢你。如何从数据库中读取数据复选框

SqlCommand cmd1 = new SqlCommand("Select Purchasing From ERPManualGuide", con); 
SqlDataReader reader1 = cmd1.ExecuteReader(); 
CheckBox5.Checked = reader1.Read(); 
+0

你需要调用读者.GetBoolean()从数据库读取后。例如: reader1.Read(); Checkbox5.Checked = reader1GetBoolean(i) (我是你的专栏号码) – Etienne

回答

0

请参阅,这里您只是从数据库中提取单个单元格值,因此在这种情况下阅读器不是必需的。我倾向于使用ExecuteScalar,它将返回查询返回的结果集中第一行的第一列。其他列或行将被忽略。并类型的对象,所以你需要将它们转换为布尔值,因此代码修改为:

SqlCommand cmd = new SqlCommand("Select Purchasing From ERPManualGuide", con); 
CheckBox5.Checked = (bool)cmd.ExecuteScalar(); 

你必须额外注意的几件事情:

  • cmdCheckBox5等都不好名字变量和控制,你应该遵循一些命名标准,照顾而命名变量
  • 在这种情况下Purchasing列的类型可以转换为布尔值,这意味着这将是bit field数据库
  • 如果你在获取更多的列然后用SqlDataReader继续而不是为ExecuteScalar()
  • 在您需要检查reader.HasRows这种情况下的情况,然后访问这样的值:CheckBox5.Checked = (bool)reader1["Purchasing"];
+0

@ThànhNguyễn:很高兴听到这句话,很高兴帮助你!希望你不会忘记标记为已接受 –

+0

哦,不!在这种情况下这是不正确的。在我的数据库中我有一个表,并且有两个值0和1.如果使用这样的话,当我加载页面时,它总是会检入复选框。 –

+0

非幸运....它显示错误指定投它不vaid。 –