я хотел бы создать простую программу, которая не позволяет текстовому полю вводить повторяющиеся данные в DataGridView

#c# #visual-studio #exception #error-handling

#c# #visual-studio #исключение #обработка ошибок

Вопрос:

я хотел бы создать простую программу, которая не позволяет текстовому полю вводить повторяющиеся данные в DataGridView

вот ошибка

  private void cekId(Kelola kel1)
    {
        if (txtId.Text == dgvRole.Rows[i].Cells[0].Value.ToString())
        {
            for (int i = 0; i < dgvRole.Rows.Count; i  )
            {
                if (txtId.Text == dgvRole.Rows[i].Cells[0].Value.ToString())
                {
                    MessageBox.Show("Data ID Yang Anda Masukkan Sudah Ada Di Dalam DataGrid");
                    return;
                }
            }
        }
    }
  

Комментарии:

1. Ваш первый оператор if ссылается на i, который не определен до цикла for . Просто удалите внешний if, и он должен запуститься.

Ответ №1:

Перед использованием i оно должно быть объявлено. Итак, как сказал Джонатан Уиллкок, вам просто нужно удалить внешний if statement .

Кроме того, необходимо проверить, является ли последняя строка пустой.

Если вы добавляете данные в DataGridView вручную, измените код следующим образом.

 for (int i = 0; i < dgvRole.Rows.Count - 1; i  )
{
    if (txtId == dgvRole.Rows[i].Cells[0].Value.ToString())
    {
        MessageBox.Show("Data ID Yang Anda Masukkan Sudah Ada Di Dalam DataGrid");
        return;
    }
}
  

Если привязать DataGridView к DataSource, попробуйте установить свойство AllowUserToAddRows DataGridView false равным .

 dgvRole.AllowUserToAddRows = false;