【问题标题】:get a boolean into a checkbox from a datagridview从datagridview获取一个布尔值到一个复选框
【发布时间】:2015-04-23 14:45:08
【问题描述】:

我试图通过单击数据网格获取值...我从文本框和组合框获取值...但是当我尝试从布尔值中获取值时表单不起作用...

  private void dtg_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        if (dtg.CurrentRow != null)
        {
            txtId.Text = dtg.CurrentRow.Cells["ID"].Value.ToString();
            txtCode.Text = dtg.CurrentRow.Cells["CODE"].Value.ToString();
            //BOOLEAN
            ckbActive.Checked = Convert.ToBoolean(dtg.CurrentRow.Cells["ACTIVE"].ToString());

我需要的是获取 ckbActive 表单控件中“ACTIVE”列的值...

【问题讨论】:

  • 你在dtg.CurrentRow.Cells["ACTIVE"].ToString() 中得到了什么?我认为由于ckbActive.Checked 未更新而出现一些异常。
  • String 未被识别为有效的布尔值...在 System.Boolean.Parse(String value)
  • @LaloohFloresCruz:那么,有哪些无效的布尔字符串?
  • dtg.CurrentRow.Cells["ACTIVE"].ToString() 的值是多少?看起来您需要编写自己的方法将dtg.CurrentRow.Cells["ACTIVE"].ToString() 转换为布尔值。
  • 你看到的是我的整个代码...我在 "ACTIVE" 上保存一个值,真或假

标签: c# sql datagridview boolean


【解决方案1】:

直接在单元格上调用ToString() 可以获得列类型的名称​​(即“DataGridViewTextBoxCell”或类似名称), 无法将其转换为有效的布尔值:

ckbActive.Checked = Convert.ToBoolean(dtg.CurrentRow.Cells["ACTIVE"].ToString());

单元格的实际值可通过Value 属性访问,因此请改用:

ckbActive.Checked = Convert.ToBoolean(dtg.CurrentRow.Cells["ACTIVE"].Value);

【讨论】:

  • 太棒了...刚刚更改了“ToString”而不是“Value”...现在它工作正常
猜你喜欢
  • 1970-01-01
  • 2018-06-13
  • 1970-01-01
  • 2021-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多