Подключение к базе данных SQL CE с использованием SQLConnection - PullRequest
8 голосов
/ 27 апреля 2009

Довольно простой вопрос. Я создаю приложение, которое читает данные из экземпляра SQL Server 2005. Я хотел запустить некоторые тесты на моем ноутбуке (на котором нет SQL 2005), поэтому я искал возможность обмена локальной базой данных для целей тестов.

Я использую VS2008, поэтому Compact Edition DB показался мне естественным выбором. Я надеялся просто поменять строку подключения, но, похоже, это позволит мне подключаться к базе данных CE только с использованием SqlCeConnection, а не SqlConnection. Можно ли как-нибудь обойтись, модификаторы, которые я могу использовать в строке подключения?

Ответы [ 3 ]

7 голосов
/ 27 апреля 2009

На самом деле очень возможно использовать SQL CE вместо полноценного SQL Server, только изменяя параметры конфигурации: изменяя строку подключения и, где это возможно, используйте интерфейсы семейства IDbXXX вместо специфичных для платформы SqlXXX и SqlCeXXX. См. DbProviderFactories .

Однако следует помнить о различиях в диалектах SQL этих двух платформ.

4 голосов
/ 04 декабря 2012

Да, вы можете использовать SQL Compact и / или SQL Server, ссылаясь на базовые классы. Например:

IDbConnection Connection;

if (Compact)
    Connection = new SqlCeConnection();
else
    Connection = new SqlConnection();

Строка подключения должна указывать на файл данных для SQL Compact, например: "Data Source=urData.sdf;Persist Security Info=False;". Больше примеров здесь .

Эта ссылка объяснит, какие различия существуют между SQL Server и SQL Compact , поскольку они не идентичны.

1 голос
/ 27 апреля 2009

Все связанные с SQL объекты, которые вам необходимы для любого из БД, наследуются от базового абстрактного Db ... (т.е. DbConnection, DbDataAdapter и т. Д.). Поэтому вы можете написать некоторый класс DatabaseManager, который при создании экземпляра должен знать, имеете ли вы дело с Sql или Sql Ce. Затем с этого момента вы имеете дело только с объектами базового класса (DbConnection и т. Д.). Таким образом, все, что вам нужно каждый раз менять, - это создание экземпляра класса вашего менеджера.

Еще один плюс, если вы решите переключиться на другого провайдера, не нужно много кода менять.

...