Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 比较DataGridView';带字符串的s单元格值_C#_Checkbox - Fatal编程技术网

C# 比较DataGridView';带字符串的s单元格值

C# 比较DataGridView';带字符串的s单元格值,c#,checkbox,C#,Checkbox,我用数据库中的值填充dvgPeople。插入/更新/删除/选择命令工作正常。我想做的事情是用所选行的值填充表单上的一些组件。我可以填写文本框,但我不能处理复选框。这是代码 if (dgvPeople.CurrentRow.Cells[6].Value == "1") { chkGerman.Checked = true; } else { chkGerman.Checked = false; } 当我调试时,会出现这种奇怪的情况: 即使是dgvPeople.CurrentR

我用数据库中的值填充dvgPeople。插入/更新/删除/选择命令工作正常。我想做的事情是用所选行的值填充表单上的一些组件。我可以填写文本框,但我不能处理复选框。这是代码

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()函数进行比较