Member 13608869 Ответов: 2

Строки не могут быть программно добавлены в коллекцию строк datagridview, если элемент управления привязан к данным.


Я получаю данные из базы данных в созданном вручную столбце datagridview,когда я получаю данные из базы данных и пытаюсь добавить строку в этот datagridview, это вызывает ошибку, как я упоминаю в названии.Это мой код.

Что я уже пробовал:

int col = dataGridView1.CurrentCell.ColumnIndex;
int row = dataGridView1.CurrentCell.RowIndex;
                
if (dataGridView1.CurrentRow.Index+1 == dataGridView1.Rows.Count)
{
   if (col < dataGridView1.Columns.Count - 1)
   {
      dataGridView1.CurrentCell = dataGridView1.Rows[row].Cells[col + 1];
      dataGridView1.Focus();
   }
   else if (col == dataGridView1.Columns.Count - 1)
   {
      dataGridView1.Rows.Add(1);
      dataGridView1.CurrentCell = dataGridView1.Rows[row].Cells[1];
      dataGridView1.Focus();
   }
}

2 Ответов

Рейтинг:
2

phil.o

Ваш datagridview привязан к данным, это означает, что он строит себя из источника данных, который вы ему предоставляете.
У вас есть два решения:

  • Либо вы снимаете привязку данных и делаете шаблонный код самостоятельно.
  • Или вы добавляете новую запись в источник данных и обновляете gridview => Он будет обновляться с новой строкой.


Рейтинг:
2

OriginalGriff

Когда вы связываете источник данных, такой как список или DataTable, с DataGridView, вы не можете добавлять строки непосредственно в DGV, потому что это приведет к его несинхронизации с источником данных, и он не будет "знать", что отображать, когда - или что обновлять базу данных, если вам это потребуется.

Вместо этого обновите источник данных: добавьте элементы в свой список или потоки данных в свой DataTable и сделайте недействительным элемент управления, чтобы обновить отображение, если это необходимо.


Member 13608869

сэр, я использую тот же gridview для вставки обновления и отображения. для Эл.г я, во-первых, вставить 3 строки данных в datagridview и сохранить его в базу данных, то я хочу, чтобы обновить его я использовать команду Display для получения данных в элементе управления datagridview, я вам 3 строки в datagridview в который я вставляю в базу данных.Теперь я хочу вставить еще одну строку и обновить ее с помощью того же datagridview.