Вопрос по c#, wpf – Невозможно вставить данные в локальную базу данных в WPF

3

В проекте у меня есть локальная база данных (я использую сетку данных для просмотра данных), но проблема в том, что когда я вставляю в базу данных, используя запрос на вставку, вставка не длится, т.е. когда я повторно запускаю приложение база данных не изменяется, и изменения не отражаются в представлении базы данных (просмотр данных таблицы в Visual Studio).

Запрос вставки:

<code>string dbCon = new     System.IO.FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).DirectoryName + "\\MyDatabase.sdf";
        SqlCeConnection dbconnection = new SqlCeConnection("datasource=" + dbCon);

        dbconnection.Open();

        String Insert = "insert into MainTable(LineID,Date,Connection_Type)  Values('5','5/8/2012','commercial')";
SqlCeCommand cmd = new SqlCeCommand(Insert, dbconnection);

        //// Execute the command
        cmd.ExecuteNonQuery();

        dbconnection.Close();
</code>

Теперь, когда этот код выполняется, сетка данных обновляется, но изменения не являются постоянными. Что я делаю не так? Я использую Visual Studio 2010 Ultimate и Windows 7

Ваш Ответ

2   ответа
0

gram Files, у вас, скорее всего, нет прав на запись в файл sdf (особенно в Windows 7, если вы не выключили UAC или поднимают ваше приложение перед выполнением).

Даже если это не ваша краткосрочная проблема, я бы порекомендовал найти другое место для файла sdf, например, один изДанные приложени места. Ожидание возможности записи в место установки не гарантируется и зависит от того, как и где развернуто ваше приложение.

Это на рабочем столе, как убедиться, что у меня есть необходимые разрешения? Ali Shahid
0

Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\MyDatabase.sdf" - это путь к папке вашего приложения. В зависимости от параметров установки ваш файл может быть не установлен там. Используйте строку подключения"DataSource=|DataDirectory|\\MyDatabase.sdf;..." как описаноВо.

Даже если ваши данные на самом деле хранятся там, в зависимости от прав пользователя, пользователь может не иметь возможности записи в этот каталог. Кроме того, когда пользователь удаляет или обновляет ваше приложение, его данные будут удалены. Людям это не нравится. Вы должны скопировать данные в папку, доступную для записи пользователем; предыдущая ссылка показывает, как это сделать.

Если у вас есть проект Visual Studio с базой данных, являющейся частью вашего проекта, возможно, для свойства «Копировать в выходной каталог» будет задано значение «Копировать». Это означает, что каждый раз, когда вы запускаете в отладчике, вы получаете новую базу данных, скопированную из вашего исходного проекта, перезаписывая все, что было раньше. Любые изменения будут в этой временной выходной папке, а не в ваших исходных данных. При повторной отладке приложения временная копия удаляется. Дальнейшее объяснение в этот ответ.

Похожие вопросы