Строка соединения с базой данных SQL Server CE - PullRequest
3 голосов
/ 19 июля 2011

Я пытаюсь установить соединение с базой данных в приложении Windows CE 5.0 и использую Compact Framework 2.0

База данных находится в папке проекта:

C: \ Documents and Settings \ softdil \ Мои документы \ Visual Studio 2008 \ Projects \ Datalogic \ Datalogic

Это строки, которые я использую для подключения и открытия базы данных:

SqlCeConnection conn = new SqlCeConnection();
conn.ConnectionString = "Data Source = Datalogic.sdf;";
conn.Open();

Что выдает мне красивое сообщение об ошибке "файл базы данных не найден".

Я также пытался использовать абсолютный URI с такими же результатами:

conn.ConnectionString = "Data Source = C:\\Documents and Settings\\softdil\\My Documents\\Visual Studio 2008\\Projects\\Datalogic\\Datalogic;";

Что я здесь не так делаю?

Может быть, это как-то связано с отладкой (выполнением) приложения на мобильном устройстве?

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

Ответы [ 4 ]

6 голосов
/ 20 июля 2011

В приложении Win CE мы используем следующее, чтобы получить полный путь к исполняемому файлу:

string StartupPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase);

Используя StartupPath, вы можете добавить имя базы данных к этому пути и добавить его вСтрока подключения:

string datalogicFilePath = Path.Combine(StartupPath, "Datalogic.sdf");
string connectionString = string.Format("DataSource={0}", datalogicFilePath);
1 голос
/ 19 июля 2011

Вам нужно будет заставить его работать на WinCE, я не думаю, что у вас есть C:\\Documents and Settings\\ на вашей цели.

Я так не думаю, потому что база данных работает, когда...

Посмотрите в вашем App.Config, может быть, у вас уже есть строка подключения?

0 голосов
/ 19 июля 2011

Укажите путь к файлу БД в свойстве Data Source и добавьте имя провайдера в файл App.Config

<add name="Keyname" connectionString="Data Source=DBPath\Database1.sdf" providerName="Microsoft.SqlServerCe.Client.3.5" />
0 голосов
/ 19 июля 2011

Вот как я это исправил, на случай, если кто-нибудь получит такую ​​же проблему.

Когда вы выполняете приложение в Visual Studio на оконечном устройстве Windows CE, приложение копируется туда, а также в базу данных. Таким образом, строка подключения должна использовать URI, связанный с терминалом, а не относительно пути на вашем компьютере.

...