DataGridView删除/更新问题

时间:2016-10-10 17:43:42

标签: c# function datagridview runtime-error

所以,我已经做了几天练习代码了。我正在使用DataGridView,没有数据库。除了一个问题,一切似乎都有效。每当我单击删除或更新按钮而不选择记录时,表单崩溃。这是更新功能:

private void btnUpdate_Click(object sender, EventArgs e)
    {
        if (dgvProfiles.SelectedCells == null)
        {
            MessageBox.Show("No record was selected to update.");
        }

        else {
            for (int row = 0; row < dgvProfiles.Rows.Count; row++)
            {
                for (int col = 0; col < dgvProfiles.Columns.Count; col++)
                {
                    if (dgvProfiles.Rows[row].Cells[col].Value != null &&
                      dgvProfiles.Rows[row].Cells[col].Value.Equals(txtEmail.Text.Trim()))
                    {
                        MessageBox.Show("Duplicate email was entered.");
                        return;
                    }
                }
            }
            DataGridViewRow newDataRow = dgvProfiles.Rows[indexRow];
            newDataRow.Cells[0].Value = txtFirstName.Text;
            newDataRow.Cells[1].Value = txtLastName.Text;
            newDataRow.Cells[2].Value = txtPhone.Text;
            newDataRow.Cells[3].Value = txtEmail.Text;
            newDataRow.Cells[4].Value = txtCity.Text;
            newDataRow.Cells[5].Value = cbxState.Text;
            newDataRow.Cells[6].Value = txtZip.Text;
        }
    }

提前致谢!

1 个答案:

答案 0 :(得分:1)

SelectedCells是系统提供的集合。

永远不会为空。

它可以是emtpy,所以如果(由于某种原因)你想检查你可以写:

if (dgvProfiles.SelectedCells.Count <= 0)..

if (dgvProfiles.SelectedRows.Count <= 0)..

我不确定为什么要求首先选​​择行或单元格。不应该保存永远工作..?