SQL Server Compact 2005 на Visual Studio 2008 - PullRequest
0 голосов
/ 02 февраля 2010

Я работаю над приложением Windows Forms, которое взаимодействует с файлом базы данных Sql Compact, созданным в SQL Server 2005. Это приложение изначально разрабатывалось в Visual Studio 2005, но недавно было преобразовано в решение Visual Studio 2008.

Что касается Sql Compact, мы убедились, что все ссылки по-прежнему установлены на сборки, которые работают с версией Sql Compact 2005 года, а не Sql Compact 3.5. Сделав это, приложение все еще работает так, как и должно - оно все равно будет взаимодействовать с базой данных Compact, выполнять операции синхронизации и т. Д.

Однако я только что обнаружил сегодня, что инструменты Visual Studio, такие как DataSet Designer, не очень хорошо работают с файлом базы данных Sql Compact более старой версии, чем 3.5. Если перейти к мастеру Новое подключение ... , то единственный источник данных / поставщик данных Sql Compact предназначен для Sql Compact 3.5. Я предполагаю, что Visual Studio 2008 просто не включает поставщика данных для более старой версии Sql Compact по умолчанию.

Есть ли способ добавить старую версию Sql Compact в список «Источников данных» для мастера соединений? Чтобы точно понять, что я имею в виду, щелкните меню Инструменты в Visual Studio 2008 и выберите Подключение к базе данных ... В появившемся окне нажмите Измените ... рядом с параметром Источник данных . В этом диалоговом окне невозможно выбрать более раннюю версию Sql Compact - доступна только версия 3.5.

Может быть, мне нужно где-нибудь добавить ссылку на сборку? Или скопировать некоторые файлы из моего каталога Visual Studio 2005 в 2008? Я думаю, что Visual Studio 2008 должен иметь возможность взаимодействовать с базой данных Sql Compact из Sql Server 2005.

Чтобы представить еще одну деталь, я обнаружил эту проблему, когда перешел на свой DataSet, щелкнул правой кнопкой мыши и попытался добавить TableAdapter . На первом появившемся экране написано «Выберите подключение для передачи данных». Если я оставлю для него установленное соединение Sql Compact, которое мы всегда использовали, при нажатии кнопки Далее> я получу следующую ошибку:


Не удалось открыть соединение с базой данных

"Выбранная база данных была создана в более ранней версии SQL Server Compact и должна быть обновлена ​​до SQL Server Compact 3.5, прежде чем можно будет открыть или протестировать соединение. Обновите базу данных, создав новое соединение для передачи данных и завершив добавление соединения диалоговое окно. "

Проверьте соединение и попробуйте снова.


Единственная проблема здесь в том, что мы все еще используем Sql Server 2005, и, если я правильно понимаю, он не создает файлы подписки, совместимые с Sql Compact 3.5. Если я ошибаюсь в этом предположении, пожалуйста, исправьте меня.

Буду очень признателен за любую помощь, которую вы можете оказать. Спасибо.

1 Ответ

0 голосов
/ 06 февраля 2010

попробуйте использовать метод обновления SqlCompact Engine.

SqlCeEngine en = new SqlCeEngine("--conn string");
en.Upgrade();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...