从 datagridview 中删除一行
Removing a row from data grid view
您好,我正在尝试在某些情况下从数据网格视图中删除行。我已成功删除行,但这仅适用于第一种情况。
当单元格 6 为“”时,它会被删除,但是当单元格 6 为状态时,它不会被删除。你能帮忙吗,我们忽略了第二个条件。
for (int i = dgvAuthG.Rows.Count - 1; i >= 0; i--)
{
if ((dgvAuthG.Rows[i].Cells[6].Value == "") || (dgvAuthG.Rows[i].Cells[6].Value == "Status"))
{
dgvAuthG.Rows.Remove(dgvAuthG.Rows[i]);
}
}
dgvAuthG.Refresh();
以下是调试器的摘录
dgvAuthG.Rows[i].Cells[6].Value = "Status"
我建议你在 if 语句之前打印 dgvAuthG.Rows[i].Cells[6].Value
并仔细检查它肯定是 "Status"
,它区分大小写,所以 "status"
不会等同于 true。
如果您正在使用 visual studio 或其他东西,我建议插入一个断点并使用观察者,一个用于整个 if 语句条件,一个用于条件的后半部分,一个用于 dgvAuthG.Rows[i].Cells[6].Value
以避免必须打印它。
dgvAuthG.Rows[i].Cells[6].Value == "Status"
将在为真时评估为真,很可能由于大小写或其他原因它不是真的 - 不能说更多我认为没有给出的信息。
已经回答了但没有解决问题,从那时起我意识到 .Value 是一个 object property not a string, so calling == doesn't work properly as far as I know 即使对象是一个字符串(可能)。
尝试在检查相等性之前在 .Value 上调用 .ToString,或者使用 .Equals(),我认为后者是更好的做法。
您好,我正在尝试在某些情况下从数据网格视图中删除行。我已成功删除行,但这仅适用于第一种情况。
当单元格 6 为“”时,它会被删除,但是当单元格 6 为状态时,它不会被删除。你能帮忙吗,我们忽略了第二个条件。
for (int i = dgvAuthG.Rows.Count - 1; i >= 0; i--)
{
if ((dgvAuthG.Rows[i].Cells[6].Value == "") || (dgvAuthG.Rows[i].Cells[6].Value == "Status"))
{
dgvAuthG.Rows.Remove(dgvAuthG.Rows[i]);
}
}
dgvAuthG.Refresh();
以下是调试器的摘录
dgvAuthG.Rows[i].Cells[6].Value = "Status"
我建议你在 if 语句之前打印 dgvAuthG.Rows[i].Cells[6].Value
并仔细检查它肯定是 "Status"
,它区分大小写,所以 "status"
不会等同于 true。
如果您正在使用 visual studio 或其他东西,我建议插入一个断点并使用观察者,一个用于整个 if 语句条件,一个用于条件的后半部分,一个用于 dgvAuthG.Rows[i].Cells[6].Value
以避免必须打印它。
dgvAuthG.Rows[i].Cells[6].Value == "Status"
将在为真时评估为真,很可能由于大小写或其他原因它不是真的 - 不能说更多我认为没有给出的信息。
已经回答了但没有解决问题,从那时起我意识到 .Value 是一个 object property not a string, so calling == doesn't work properly as far as I know 即使对象是一个字符串(可能)。
尝试在检查相等性之前在 .Value 上调用 .ToString,或者使用 .Equals(),我认为后者是更好的做法。