2013-07-10 4 views
1

Я создал приложение Windows Forms, которое должно добавить новую запись в базу данных. Теперь он успешно добавляет его, и новые данные могут быть использованы ... но когда я закрываю приложение и запускаю его снова, приложение действует так, как будто ничего не изменилось.Файл базы данных не обновляется

База данных была создана в SQL Server, и приложение использует файл .mdf, сгенерированный им.

Вот метод:

private void btnUnos_Click(object sender, EventArgs e) 
{ 
      //create an instance of the row to be inserted 
      PIScarinaDataSet.OsobaRow novaOsoba; 
      novaOsoba = pIScarinaDataSet.Osoba.NewOsobaRow(); 

      //fill the attributes 
      novaOsoba.Ime = txtImeOsobe.Text; 
      novaOsoba.Drzavnost = dobijDrzavu(); 
      novaOsoba.Predstavlja = dobijPredstavnika(); 

      //insert into the database 
      this.Validate(); 
      this.pIScarinaDataSet.Osoba.Rows.Add(novaOsoba); 
      this.osobaTableAdapter1.Update(this.pIScarinaDataSet.Osoba); 
      this.osobaBindingSource1.EndEdit(); 
} 
+4

.Save()? ......... –

+0

Где это.osobaBindingSource1.BeginEdit()? – Edper

+0

Еще одна вещь, которую нужно искать, поскольку вы используете .MDF, созданный SQL Server, вам нужно убедиться, что свойство «Скопировать в выходной каталог» в файле установлено в «Копировать, если новое» в Visual Studio. (Или «Не копировать», если вы собираетесь вручную поместить его в правильный каталог.) То есть, если вы действительно сохраняете данные, и это проблема. –

ответ

1

Вы не показали нам решающую роль - строку соединения вашего приложения - но я предполагаю, что он будет содержать что-то вроде AttachDbFileName=yourdatabase.mdf где-то там ,

Весь Пользовательский пример и AttachDbFileName = Недостаток подхода - в лучшем случае! При запуске вашего приложения в Visual Studio он будет копировать файл .mdf (из вашего каталога App_Data в выходной каталог - обычно .\bin\debug - где вы запускаете приложение) и , скорее всего,, ваш INSERT работает нормально - но вы просто глядя на неправильный .mdf файл в конце!

Если вы хотите придерживаться такого подхода, попробуйте положить точку останова на вызов myConnection.Close(), а затем проверить файл .mdf с помощью SQL Server Mgmt Studio Express. Я почти уверен, что ваши данные есть.

реальное решение на мой взгляд, было бы

  1. установки SQL Server Express (и вы уже сделали это в любом случае)

  2. установки SQL Server Management Studio Express

  3. Создайте свою базу данных в SSMS Express, введите логическое имя (например, MyDatabase)

  4. подключиться к нему с помощью его логического базы данных (данный при создании на сервере) - и не вмешиваться в работу с файлами физической базы данных и пользовательскими экземплярами. В этом случае строка подключения будет что-то вроде:

    Data Source=.\\SQLEXPRESS;Database=MyDatabase;Integrated Security=True 
    

    и все остальное точно же, как раньше ...

2

Поскольку это то, что вам помог, я сделаю это ответ:

[S] осле вы используете .mdf, созданный SQL Server, вам необходимо убедиться, что свойство «Копировать в выходной каталог» на файл установлен на «Копировать если новее» в Visual Stud Ио. (Или «Не копировать», если вы собираетесь вручную поместить его в правильный каталог.) То есть, если вы действительно сохраняете данные, и это проблема.

Смежные вопросы