Как мне подключиться к SDF на мобильном устройстве из настольного приложения?
-
06-07-2019 - |
Вопрос
C # WinForms .Net 3.5 для SQL CE 3.5 на мобильном устройстве 6.1
Я хотел бы установить соединение из настольного приложения с базой данных 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, поскольку я нашел несколько статей, в которых упоминалось, что это было необходимо.
Кто-нибудь может указать мне на некоторые недавние статьи / образцы или сообщить, что я делаю не так?
Спасибо!
Решение
Я только что обнаружил, что работает следующее:
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();
Это было не совсем то, что я искал, но будет работать для этого приложения.