【问题标题】:How to read data from database on checkbox如何在复选框上从数据库中读取数据
【发布时间】:2017-08-11 13:51:07
【问题描述】:

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

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

【问题讨论】:

  • 从数据库读取后需要调用 reader.GetBoolean()。类似于: reader1.Read(); Checkbox5.Checked = reader1GetBoolean(i)(我是你的列号)

标签: c# sql-server checkbox


【解决方案1】:

看,这里你只从数据库中获取一个单元格值,所以在这种情况下不需要读取器。我更喜欢您使用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"];

【讨论】:

  • @ThànhNguyễn:很高兴听到这个消息,很高兴为您提供帮助!希望您不会忘记将其标记为已接受
  • 哦,不!在这种情况下这是不正确的。在我的数据库中,我有一个表,并且有两个值 0 和 1。如果这样使用,它会在我加载页面时始终选中复选框。
  • 数据库中Purchasing的类型是什么
  • 采购是位型
  • 哦。我现在知道了。我将数据库中的采购类型转换为“int”,就可以了。非常感谢。!很高兴得到您的帮助。我如何在此页面中为您投票,我是新成员
猜你喜欢
  • 2012-02-23
  • 1970-01-01
  • 2013-10-09
  • 2022-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-12
相关资源
最近更新 更多