Вставить метод TableAdapter не работает? - PullRequest
5 голосов
/ 29 декабря 2010

Я использую ADO.NET в моем проекте на C #.В моей форме я добавил элемент SourceBinding из моей панели инструментов в VS2010.Я установил соединение с таблицей моего набора данных.Он автоматически создает DataAdapter для моего.

Я хочу вставить запись, поэтому я вызываю метод Insert () DataAdapter.Но когда я просматриваю данные базы данных, у них нет новых записей ...

orderID = this.orderTableAdapter.Insert("", "", 
                (int)OrderStatus.IN_CONSTRUCTION, DateTime.Now);

Или мне нужно вставить их вручную с помощью SqlCommand ???

Ответы [ 2 ]

4 голосов
/ 26 мая 2011

Мне тоже было трудно понять это.

Вам нужно позвонить DataSet.AcceptChanges() после TableAdapter.Insert(...)

Это сработало для меня.

Итак, шагиявляются:

  1. Создайте свой источник привязки, табличный адаптер и набор данных с помощью Visual Studio.
  2. TableAdapter.Fill(..) // это должно быть автоматически добавлено по сравнению с
  3. TableAdapter.Insert(..)
  4. DataSet.AcceptChanges()
  5. TableAdapter.Update(..)
3 голосов
/ 29 декабря 2010

Адаптеры таблиц предназначены для использования с набором данных, чтобы помочь вам получать данные в и из БД, используя этот набор данных.

Идея состоит в том, что вы можете использовать Dataset.NewYourTableNameRow() для создания новогострока для вашего набора данных, затем заполните его поля и затем вызовите DataSet.AddYourTableNameRow(row), чтобы поместить его в набор данных.

Теперь вы можете orderTableAdapter.update(DataSet) передать эту новую строку в базу данных.

ВЧтобы удалить или обновить строку, вы должны сначала выбрать ее в наборе данных, выполнить изменение объекта, а затем вызвать .update (ds) на соответствующем адаптере таблицы, чтобы отправить его обратно.

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