Обновите MS Access после редактирования содержимого связанного списка - PullRequest
0 голосов
/ 01 сентября 2011

Я создал список, привязанный к таблице данных в C #, подключенной к базе данных MS Access.

Идея состояла в том, чтобы отобразить содержимое таблицы в списке, и при выборе каждого из них он отображал быдругие значения в текстовых полях по всей форме.Я был в состоянии сделать это.Моя следующая проблема - обновить базу данных при редактировании значений в текстовых полях.Теперь я создал кнопку обновления, которая затем обновит значения в списке, а затем вызовет функцию Update () для адаптера данных, который использует список, но, похоже, он не влияет на таблицу.Мой код ниже.

private void btnUpdate_Click(object sender, EventArgs e)
{
    if (lstEmployees.SelectedIndex > -1)
    {
        dEmployeesTable.Rows[lstEmployees.SelectedIndex].BeginEdit();
        dEmployeesTable.Rows[lstEmployees.SelectedIndex]["LastName"] = txtLastName.Text;
        dEmployeesTable.Rows[lstEmployees.SelectedIndex].AcceptChanges();
        dAdapter2.Update(dEmployeesTable);
    }
}

Я что-то упустил?Я пробовал это с datagridviews, и он отлично работает, включая редактирование и удаление.Не уверен, почему он не работает со списками.

Я пытался осмотреться и искать в стеке поток и другие сайты, но не могу найти ничего близкого.

1 Ответ

0 голосов
/ 01 сентября 2011

При использовании Обновление порядок выполнения следующий:

  • Значения в DataRow перемещаются в значения параметров.

  • Событие OnRowUpdating возбуждено.

  • Команда выполняется.

  • Если для команды задано значение FirstReturnedRecord, то первый возвращенный результат помещается в DataRow .

  • Если имеются выходные параметры, они помещаются в DataRow .

  • Возникает событие OnRowUpdated .

  • AcceptChanges вызывается.

, поэтому удалите строку dEmployeesTable.Rows[lstEmployees.SelectedIndex].AcceptChanges(); и попробуйте снова

AcceptChanges фиксирует изменения в наборе данных или данных. Все добавленные и измененные строки стать "Unchanged".

при вызове Update (..) адаптер данных не найти любые измененные строки для обновления. Update () звонки AcceptChanges () внутри страны.

...