Как обновить базу данных, используя набор данных, менеджер таблиц и bindingsource? - PullRequest
0 голосов
/ 05 марта 2012

Это довольно маленькая программа, поэтому я просто использовал автоматически сгенерированный код для своего источника данных и перетаскивал / сбрасывал представление данных на моем WinForm. Я пытаюсь вручную обновить столбец в строке, но происходит сбой каждый раз, когда я получаю «UpdateAll» моего менеджера таблиц. Вот мой код для двойного щелчка по содержимому ячейки:

    private void dgv1DataGridView_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
    {
        try
        {
            string delMemberID = dgv1DataGridView.Rows[e.RowIndex].Cells[0].Value.ToString();
            ds1DataSet.Table1.Rows[ds1DataSet.Table1.Rows.IndexOf(ds1DataSet.Table1.FindByMemberID(delMemberID))][9] = MemberID.ToString();
            this.Validate();
            this.bs1BindingSource.EndEdit();
            this.tableAdapterManager.UpdateAll(this.ds1DataSet);
            MessageBox.Show("Replacement Successful");
            this.Close();
        }
        catch
        {
            MessageBox.Show("Replacement Failed");
        }
    }

Мои ожидания таковы; когда пользователь дважды щелкнет в любом месте строки представления данных, он обновит эту строку с другим «MemberID» для этого столбца, сохранит данные везде (включая базу данных), а затем закроет форму (чтобы вернуть родительскую форму).

1 Ответ

0 голосов
/ 06 марта 2012

По какой-то причине мой tableAdapterManager не был связан с моим TableAdapter в этой форме - как только я связал их, приведенный выше код работал нормально.

Чтобы быть более точным, я нажал на представление дизайна моей формы и щелкнул таблицу AdapterManager в нижней части окна дизайна. Затем, заглянув в окно «Свойства», я заметил, что TableAdapter был пустым (если вы использовали мастер для создания источника данных, он будет называться так же, как таблица в вашем источнике данных). Как только я выбрал правильное имя для TableAdapter, все заработало идеально.

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