#c# #database #visual-studio-2010 #datagrid #sql-update
#c# #База данных #visual-studio-2010 #datagrid #sql-обновление
Вопрос:
Когда я перетаскиваю таблицу из DataSet в свою форму Windows, по умолчанию создаются BindingNavigator и DataGridView. Теперь, когда я запускаю проект, добавляю строки в DataGridView, сохраняю его перед выходом, а затем повторно запускаю проект, добавленные строки присутствуют, но когда я захожу в обозреватель серверов для просмотра табличных данных, этих строк в базе данных нет.
При поиске я обнаружил, что Visual Studio создает копию моей базы данных в папке /bin / Debug и выполняет все изменения в этой копии базы данных. Есть ли способ убедиться, что новая копия создается в каталоге проекта, чтобы старая копия изменялась вместо создания ее в другом каталоге? Или любой другой способ обновить исходную базу данных?
p.s. Изменение свойства базы данных «Копировать в выходной каталог» на «Не копировать» не решило проблему.
Ответ №1:
Вы можете обновить свою базу данных с помощью SqlAdapter.
// load data
if(ds != null)
ds.Clear();
adap = new SqlDataAdapter("select id,title, description from testtable", con);
ds = new DataSet();
adap.Fill(ds);
dataGrid1.DataSource = ds.Tables[0];
// perform update
SqlCommandBuilder com = new SqlCommandBuilder(adap);
foreach(DataRow dr in ds.Tables[0].Rows)
dr["title"] = txtTitle.Text;
adap.Update(ds);
надеюсь, это поможет
Комментарии:
1. На данный момент код, написанный по умолчанию: // TODO: эта строка кода загружает данные в таблицу ‘database1DataSet.emp’. Вы можете переместить или удалить его по мере необходимости.
code
this.empTableAdapter. Fill(this.database1DataSet.emp); // И этот фрагмент кода сохраняет данные: this . Validate(); this.empBindingSource . EndEdit(); this.TableAdapterManager. UpdateAll(this.database1DataSet); Что не так с этим кодом?
Ответ №2:
Когда вы создавали свой набор данных, вы сняли флажок «Включить локальное кэширование базы данных» на экране «Мастер настройки источника данных»?
Комментарии:
1. Да, я снял флажок. На самом деле это было снято по умолчанию.
Ответ №3:
Вместо использования привязки. Вы можете использовать настройки приложения. Записывается просто XML-файл!