Автоматическая установка внешних ключей и автономеров в новых строках DataGridView? - PullRequest
1 голос
/ 22 августа 2010

У меня есть таблица заказов со следующими столбцами:

orderid, clientid, [columns for order details] ...

Затем я отображаю эту таблицу для конкретного клиента, используя DataGridView. Однако у меня есть скрытые столбцы orderid и clientid, поскольку orderid является первичным ключом с автоматическим нумерацией, а clientid является константой.

К сожалению, когда новые строки добавляются в DataGridView, они не сохраняются в базе данных. Я полагаю, что это потому, что orderid по умолчанию -1 и / или clientid по умолчанию null всякий раз, когда новая строка вставляется в DataGridView, а потому что эти столбцы скрытый пользователь не может их изменить.

Итак, мой вопрос:

Как получить автоматический выбор orderid и значение по умолчанию clientid для отображаемого в данный момент клиента при каждой вставке новой строки?

Ответы [ 2 ]

1 голос
/ 22 августа 2010

Похоже, я могу перехватить событие UserAddedRow и вручную установить правильное значение там:

private void myDataGridView_UserAddedRow(object sender, DataGridViewRowEventArgs e)
{
    myDataGridView[clientidColumn.Index, e.Row.Index - 1].Value = clientid;
}

Теперь это правильно сохраняет новые заказы в базе данных, хотя это выглядит немного странно (почему это должно быть e.Row.Index - 1?). Нет ли способа указать значения по умолчанию для столбцов в новых строках?

0 голосов
/ 23 мая 2013

Вы, вероятно, хотите создать форму Master / Detail

http://msdn.microsoft.com/en-us/library/y8c0cxey.aspx

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