ОК, поэтому я совсем потерян. Это мое первое приложение, написанное для окон с локальной базой данных. Я написал приложение WPF в VS2012 с локальной базой данных, в которой все CRUD написаны как хранимые процедуры. Приложение работает, когда я запускаю его в VS. Но поскольку я создаю приложение и устанавливаю его (на любом компьютере), база данных недоступна. У меня такое чувство, что строка подключения вызывает эту проблему.Отпустите приложение WPF с локальной базой данных
Сначала я использовал строки соединения:
SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename='D:\LH\Personalitytest win\DB.mdf';Integrated Security=True;Database=DB")
Но, как я получил «Ошибка: 26 - Ошибка Расположение сервера/экземпляра указано» Я предположил, что источником данных о связи не является правильным (хотя AttachDbFilename определенно неверно). Таким образом, я изменил строку подключения:
SqlConnection conn = new SqlConnection(@"Server=(localdb)\v11.0;AttachDbFilename=" + AppDomain.CurrentDomain.BaseDirectory + "DB.mdf;Database=DB;Trusted_Connection=Yes;");
И я получил ошибку, которая в основном сказал, что файл DB.mdf не найден.
Итак, я убедился, что файлы .mdf и .ldf скопированы в каталог установки/базу данных. Но после установки оба этих файла доступны только для чтения (даже если у них есть чтение/запись, когда я разрабатываю). Я попытался изменить права доступа к файлам (для обоих файлов), как приложение запускается в первый раз с помощью:
string path = AppDomain.CurrentDomain.BaseDirectory + @"Database\DB.mdf";
FileInfo file = new FileInfo(path);
file.IsReadOnly = false;
и
File.SetAttributes(path, FileAttributes.Normal);
и
FileAttributes attributes = File.GetAttributes(path);
attributes = attributes & ~FileAttributes.ReadOnly;
File.SetAttributes(path, attributes);
, но ни один из них методы работают.
Мой вопрос в основном, как должна быть реализована база данных в финальной версии?