Добавить строку в DataGridView, привязанную к базе данных в C # - PullRequest
2 голосов
/ 07 июля 2011

У меня есть DataGridView, привязанный к таблице базы данных SLQ Server CE.

Я создал кнопку «Добавить». Когда кнопка нажата, я хотел бы добавить новую строку в DataGridView, чтобы позволить пользователю вставлять новые данные в DataGridView.

Мне также хотелось бы, чтобы данные сохранялись в ограниченной базе данных после того, как пользователь завершит ввод в этой новой строке.

Я пробовал:

dataGridView1.Rows.Add();

Внутри события нажатия кнопки, чтобы вставить новую строку, но я получаю следующее сообщение об ошибке:

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

Есть предложения?

Ответы [ 2 ]

3 голосов
/ 07 июля 2011

Вы должны добавить строку к DataTable или любому другому объекту, который вы используете для взаимодействия между SQL и DataGridView (другими словами, объект, который вы установили dataGridView1.DataSource равным).* Например:

// set DataSource
dataGridView1.DataSource = dataTable1;

// add row
dataTable1.Rows.Add();

Если вы не хотите контролировать добавление самостоятельно, вы можете сделать то, что сказал @InBetween, и установить dataGridView1.AllowUserToAddRows в true.

3 голосов
/ 07 июля 2011

Вы можете разрешить пользователю добавлять строки, установив DataGridView.AllowUserToAddRows в true. Это позволит пользователю добавлять столько новых строк, сколько он хочет, и редактировать значения полей.

Другой вариант - добавить новую строку «по умолчанию» непосредственно к объекту DataGridView.DataSource (IList или IListSource). Это равносильно тому, что пользователь может добавлять строки, но имеет то преимущество, что вы можете контролировать количество добавляемых строк (например, пользователю следует разрешить добавлять только 1 строку, в этом случае вы должны установить AllowUserToAddRows в false).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...