Где разместить мой файл .sdf при тестировании приложения через эмулятор - PullRequest
1 голос
/ 10 августа 2010

Я работаю над smartApplication. Здесь, когда я пытаюсь подключиться к моей базе данных SQL Server CE 2005, я получаю исключение

Путь недействителен. Проверьте каталог для базы данных. [Путь = D: \ SmartProject \ DBFile.sdf]

Моя строка подключения

Источник данных = D: \ SmartProject \ DBFile.sdf; Пароль = test123

и код для подключения похож на

 string connectionString = "Data Source=D:\\SmartProject\\DBFile.sdf;Password=test123";
    SqlCeConnection Connection = new SqlCeConnection(connectionString);
    SqlCeCommand comm = new SqlCeCommand(SqlSelectCommandText, Connection);
    SqlCeDataAdapter da = new SqlCeDataAdapter(comm);
    DataSet ds = new DataSet();
    try
    {
        Connection.Open();
        da.Fill(ds);
        if (ds.Tables.Count > 0)
            dataTable = ds.Tables[0];
        else
            dataTable = new DataTable();
        bsuccessfullyExecuted = true;
    }
    catch (SqlCeException ex)
    {
        bsuccessfullyExecuted = false;
        dataTable = null;
    }
    finally
    {
        Connection.Close();
    }

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

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

но когда я пытаюсь получить доступ к нему через эмулятор, он показывает эту ошибку. при условии, что его соединяют через подставку и центр устройств Windows Mobile. Он показывает всю страницу, но когда я пытаюсь получить доступ к БД через исключение ..

1 Ответ

0 голосов
/ 10 августа 2010

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

Data Source=\Temp\DBFile.sdf;Password=test123

. Этот Temp находится в папке мобильного устройства, так как наш сеанс конструктора подключен к базе данных SQL Mobile, котораяна мобильном устройстве, подключенном через ActiveSync.

В результате строка подключения к базе данных, которая автоматически создается с помощью bindingsource, представляет собой специальную строку подключения, которая работает только из VS2005 и начинается с DataSource = Mobile Device .....

Так что для эмулятора мы должны поместить sdf-файл в Mobile Devide и как указано выше

...