2009-10-24 5 views
0

C# WinForms .Net 3.5 to SQL CE 3.5 на мобильном устройстве 6.1 УстройствоКак подключиться к SDF на мобильном устройстве из настольного приложения?

Я хотел бы установить соединение с настольным приложением в базу данных SDF на моем устройстве Windows Mobile, когда он подключен через ActiveSync. Visual Studio позволяет мне создать подключение к данным на моем устройстве. Проверки подключений ОК, и я могу просматривать данные в базе данных с помощью Visual Studio.

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

Как я могу указать путь мобильного устройства в строке соединения?

В моей App.Config, я попытался вариации на пути, но ни один из них не работает:

connectionString="Data Source=Mobile Device\Program Files\SqlCeViaActiveSync\Orders.sdf" 

connectionString="Data Source=\Mobile Device\Program Files\SqlCeViaActiveSync\Orders.sdf" 

connectionString="Data Source=Program Files\SqlCeViaActiveSync\Orders.sdf" 

connectionString="Data Source=\Program Files\SqlCeViaActiveSync\Orders.sdf" 

Полное соединение струнная секция выглядит следующим образом:

<connectionStrings> 
    <add name="SqlCeViaActiveSync.Properties.Settings.OrdersConnectionString" 
     connectionString="Data Source=Mobile Device\Program Files\SqlCeViaActiveSync\Orders.sdf" 
     providerName="Microsoft.SqlServerCe.Client.3.5" /> 
</connectionStrings> 

Кроме того, Я сделал ссылку на Microsoft.SqlServerCe.Client, поскольку я нашел несколько статей, в которых упоминалось, что это необходимо.

Может ли кто-нибудь указать мне на некоторые недавние статьи/образцы или сообщить мне, что я делаю неправильно?

Спасибо!

ответ

0

Я просто нашел, что следующие работы:

SqlCeConnection conn = new SqlCeConnection(@"Data Source='Mobile Device\Program Files\SqlCeViaActiveSync\Orders.sdf';"); 
     conn.Open(); 
     using (SqlCeTransaction trans = conn.BeginTransaction()) 
     { 
      using (SqlCeCommand cmd = conn.CreateCommand()) 
      { 
       cmd.CommandText = "SELECT [OrderNumber] FROM [Orders];"; 
       trans.Commit(); 
       SqlCeDataReader dr = cmd.ExecuteReader(); 
       while (dr.Read()) 
       { 
        this.listBox1.Items.Add((string)dr["OrderNumber"]); 
       } 

       MessageBox.Show(dr.RecordsAffected.ToString()); 
      } 
     } 
     conn.Close(); 

Это было не совсем то, что я искал, но будет работать для этого приложения.

+0

Интересная строка подключения - это первая попытка в вашем вопросе. Ты уверен, что не написал это неправильно? – Craig

Смежные вопросы