C# 比较DataGridView';带字符串的s单元格值
我用数据库中的值填充dvgPeople。插入/更新/删除/选择命令工作正常。我想做的事情是用所选行的值填充表单上的一些组件。我可以填写文本框,但我不能处理复选框。这是代码C# 比较DataGridView';带字符串的s单元格值,c#,checkbox,C#,Checkbox,我用数据库中的值填充dvgPeople。插入/更新/删除/选择命令工作正常。我想做的事情是用所选行的值填充表单上的一些组件。我可以填写文本框,但我不能处理复选框。这是代码 if (dgvPeople.CurrentRow.Cells[6].Value == "1") { chkGerman.Checked = true; } else { chkGerman.Checked = false; } 当我调试时,会出现这种奇怪的情况: 即使是dgvPeople.CurrentR
if (dgvPeople.CurrentRow.Cells[6].Value == "1")
{
chkGerman.Checked = true;
}
else
{
chkGerman.Checked = false;
}
当我调试时,会出现这种奇怪的情况:
即使是dgvPeople.CurrentRow.Cells[6].Value=1,它仍然为false。Value具有类型对象
Value.ToString().Equals("1")
要将其作为字符串进行比较,请尝试根据字符串对象检查布尔值 这将有助于:
if (dgvPeople.CurrentRow.Cells[6].Value.ToString() == "1")
{
chkGerman.Checked = true;
}
else
{
chkGerman.Checked = false;
}
您是否尝试过:
if (dgvPeople.CurrentRow.Cells[6].Value.ToString() == "1")
ReSharper试图告诉你什么?它说“可能是意外的引用比较;要获得值比较,请将左侧强制转换为键入‘string’”,没错;有关解决方案,请参见下面x4rf41的答案;这是
object
。很抱歉,两个答案都有点不正确,请始终使用字符串类型的.Equals()函数进行比较