Как включить файл базы данных .sdf при упаковке моего приложения

#vb.net #sql-server-ce #clickonce

#vb.net #sql-server-ce #clickonce

Вопрос:

Я смог создать приложение в VB.net который взаимодействует с базой данных SQL Server CE.

Теперь я хочу развернуть это приложение, используя функцию публикации с помощью clickonce.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я устанавливаю приложение на другой компьютер, оно продолжает искать мой sql server на моем компьютере для разработки.

Я добавил .sdf при упаковке моего решения, но это все еще проблема.

Как мне изменить строку подключения для подключения к файлу .sdf, который я включил в пакет?

это моя текущая строка подключения, которая просматривается на сервере sql: ConnectionString = «Источник данных = CHRIS-PC SQLEXPRESS; Начальный каталог = ce_db; Встроенная безопасность = True»

Спасибо!!

Ответ №1:

Строка подключения = «Источник данных = localhost SQLEXPRESS; Исходный каталог = ce_db; Встроенная безопасность = True»

или, возможно

 connectionString = "Data Source="   (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)   "\ce_db.sdf;Persist Security Info=False;";
  

эта строка подключения работала бы, если бы у вас была база данных в том же каталоге, что и исполняемый файл, использующий ее.

по сути, источником данных является либо сервер базы данных, к которому вы подключаетесь, либо файл базы данных, к которому вы подключаетесь.

Если вы используете файл, то у вас есть только один каталог. и если вы используете сервер, то вы захотите указать конкретный каталог, используя начальный атрибут catalog строки подключения.

Комментарии:

1. однако я думаю, что для этого потребуется установить sql Express.

2. Привет, Джейсон — я пытаюсь ограничить пользователя в установке sql Express, поэтому я использовал версию CE с clickonce

3. Им все равно придется установить предварительный запрос CE. Я создал приложение, которое просто открыло базу данных с жесткого диска. но мне пришлось создать установщик, который загрузил SQL CE из Microsoft и также установил его.

4. Да, верно, им придется установить предварительный запрос CE… к сожалению, я попробовал 2 приведенные выше строки, и обе, похоже, не сработали. Должен ли ce_db.sdf быть помещен в каталог моего проекта в определенном месте? нужно ли его просто добавить в проект как «существующий элемент»?

5. ну, как отмечено в блоке кода в моем ответе. вы можете использовать путь к файлу, который ведет к базе данных, в качестве источника данных, а не использовать sql server и сопутствующий исходный каталог. это должно обеспечить вам необходимое подключение.