У меня есть приложение Windows CE Form (NETCF 3.5), которое я создал с помощью Visual Studio 2008 (c #) - (Однако суть моего вопроса, вероятно, относится и к обычному приложению Windows).
Приложение реализует базу данных SQLite, которую я поместил в проект, то есть местоположение базы данных находится в подкаталоге моего проекта. Таким образом, строка подключения к базе данных выглядит примерно так:
@"Data Source = C:\src\myApp\data\mydb.s3db"
Соединение с базой данных в порядке и работает.
После создания базы данных я добавил набор данных с помощью «Мастера настройки источника данных» VS2008 (в VS2008 выберите «Данные> Добавить новый источник данных ...»). Мастер позволяет нам создать соединение с существующей базой данных, а затем выбрать таблицы из этой базы данных, которые будут использоваться в наборе данных, который мастер собирается создать.
Таким образом, мастер отлично справляется с созданием набора данных, который позволяет нам программировать против него. Проблема, с которой я сталкиваюсь, заключается в развертывании приложения на моем устройстве WinCE.
Проблема, с которой я сталкиваюсь, заключается в том, что приложение пытается получить доступ к базе данных, когда ему необходимо заполнить набор данных данными.
Корень проблемы заключается в том, что строка подключения к базе данных, определенная в наборе данных, относится к устройству разработчика, а не к локальному пути для устройства WinCE.
Например: строка подключения в наборе данных установлена на
@"Data Source = C:\src\myApp\data\mydb.s3db"
вместо полного пути целевого устройства, аналогичного
@ "Источник данных = \ Program Files \ myApp \ data \ mydb.s3db"
Мне удалось решить проблему, вручную отредактировав файл набора данных .Designer.cs (с помощью метода InitConnection ()). Тем не менее, было бы неплохо, если бы VS2008 мог как-то управлять для меня строкой соединения - то есть в режиме разработки строка соединения указывает на базу данных на моем компьютере разработчика. В режиме развертывания строка подключения указывает на базу данных на устройстве.
Есть ли способ указать строку подключения, чтобы указать относительный путь, а не полный путь, может быть? Или