вставить строку в базу данных (C #, SQL Server CE) - PullRequest
0 голосов
/ 03 февраля 2009

Я пытаюсь добавить строку в таблицу в базе данных, используя метод обновления адаптера таблицы. Я не получаю никаких ошибок. Похоже, что он работает нормально, но нет фактической вставки в базу данных. Однако, если я пытаюсь вставить ту же строку снова, я получаю исключение ограничения, говорящее, что я пытаюсь вставить данные, которые уже находятся в таблице. Но, в конце концов, нет данных, физически вставленных в таблицу. Я пытался использовать метод вставки табличного адаптера, но получил ту же ошибку.

Где я делаю не так?

Вот код, в который производится вставка: (имя базы данных: pompadatabase, имя таблицы: pompa)

pompadatabaseDataSet.pompaRow tmprow;
tmprow = pompadatabaseDataSet.pompa.NewpompaRow();
tmprow.isim = textBox5.Text;
tmprow.info = richTextBox1.Text;
tmprow.resim = bao;
tmprow.seri_id = Convert.ToInt32(sinifBox.SelectedValue.ToString());
this.pompadatabaseDataSet.pompa.Rows.Add(tmprow);
this.pompaTableAdapter.Update(this.pompadatabaseDataSet.pompa);

Ответы [ 2 ]

3 голосов
/ 03 февраля 2009

Где вы «физически» ищете данные? я имею в виду, вы проверяете экземпляр db, который есть у вас в обозревателе решений или в папке внутри папки отладки? Когда вы запускаете свое приложение, копия этой базы данных SQL Server CE будет помещена в эту папку, и строки будут сохранены там. Каждый раз, когда вы повторно запускаете приложение, этот файл будет перезаписываться. Попробуйте запустить приложение из этой папки, если все прошло хорошо, в этом была проблема. Ну, это может звучать глупо, но это случилось со мной, когда я впервые начал работать с DataSets и TableAdapters.

0 голосов
/ 04 марта 2009

транзакция pompaTableAdapter должна быть совершена. т.е. urtransaction.Commit (); затем посмотрите в БД, данные будут сохранены.

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