Как подключиться к SDF на мобильном устройстве из настольного приложения? - PullRequest
0 голосов
/ 24 октября 2009

C # WinForms .Net 3.5 для SQL CE 3.5 на мобильном устройстве 6.1.

Я хотел бы подключиться из настольного приложения к базе данных SDF на моем устройстве Windows Mobile, когда оно подключено через ActiveSync.Visual Studio позволяет мне создавать Data Connection для моего устройства.Тесты соединений в порядке, и я могу просматривать данные в базе данных с помощью 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, поскольку нашел несколько статей, в которых упоминалось, что это необходимо.

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

Спасибо!

1 Ответ

0 голосов
/ 25 октября 2009

Я только что обнаружил, что работает следующее:

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();

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

...