デスクトップアプリケーションからモバイルデバイス上のSDFに接続するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1618693

質問

モバイル6.1デバイス上のC#WinForms .Net 3.5からSQL CE 3.5へ

ActiveSync経由で接続している間に、デスクトップアプリケーションからWindows Mobileデバイス上のSDFデータベースに接続したいのですが。 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();

私が探していたものではありませんでしたが、このアプリケーションで動作します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top