Microsoft の Sync Framework で構築されたアプリケーションがあります。データは、同期フレームワーク ウィザードで構成されたデータベースに入力され、保存されます。私が理解していることから、これによりサーバー データベースのクローンがローカル ディレクトリに配置され、データベースのバージョンは SQL Compact エディションになります。
ユーザーはアプリケーションをオフラインで使用することがあり、別のデータベースに入力するために 1 つのデータベースからの情報が必要になります。ツール データベースからツールを選択し、デバイス データベースから特定のパラメータを持つデバイスを選択します。これを行うには、オフライン時にローカル データベースにクエリを実行できる必要があります。
最初に、設定からローカルの ConnectionString を使用してコンボボックスを埋めようとしました。
Dim conn As New SqlConnection(My.Settings.ClientDatabaseConnectionString)
conn.Open()
Dim dat As SqlDataAdapter = New SqlDataAdapter("SELECT Distinct InstrumentType FROM CreateScriptTable", conn)
Dim dt As New DataSet
dat.Fill(dt, "TestScriptTable")
cbInst.DataSource = dt.Tables("TestScriptTable").DefaultView
cbInst.DisplayMember = "InstrumentType"
cbInst.ValueMember = "InstrumentType"
次に、SQL ce データベースであるため、SQLCeConnection を使用しました。
Dim conn As SqlCeConnection
conn = New SqlCeConnection("Data Source=|DataDirectory|\TestsDatabase4.sdf;Max Database Size=2047")
Dim dat As SqlCeDataAdapter = New SqlCeDataAdapter("SELECT Distinct InstrumentType FROM TestScriptTable", conn)
Dim dt As New DataSet
dat.Fill(dt, "TestScriptTable")
cbInst.DataSource = dt.Tables("TestScriptTable").DefaultView
cbInst.DisplayMember = "InstrumentType"
cbInst.ValueMember = "InstrumentType"
削除を含む、ローカル接続文字列のさまざまな形式が SQLConnection() に渡されましたこれらのアプローチはどちらも機能しなかったため、チュートリアルhereMax Database Size=2047
に従って実行時に接続文字列を変更しようとしました
これも機能しなかったため、現時点ではデータを取得できません自由にオフライン。これについて何か考えている人はいますか?ありがとう。