2

Windows CE 5.0アプリケーションでデータベースとの接続を確立しようとしていて、Compact Framework 2.0を使用していますSQL Server CEデータベースの接続文字列

データベースはプロジェクトのフォルダ内にあります。

C:\ DocumentsとSettings \ softdil \マイドキュメントのVisual Studio 2008の\プロジェクト\データロジック\データロジック\

これらは、私は、データベースを接続して開くために使用している線です:

SqlCeConnection conn = new SqlCeConnection(); 
conn.ConnectionString = "Data Source = Datalogic.sdf;"; 
conn.Open(); 

私に美しい "データベースファイルが見つかりません"というエラーメッセージが表示されます。

私も同じ結果に絶対URIで試してみました:

conn.ConnectionString = "Data Source = C:\\Documents and Settings\\softdil\\My Documents\\Visual Studio 2008\\Projects\\Datalogic\\Datalogic;"; 

は、私はここで間違って何をしているのですか?

モバイルデバイスでアプリケーションがデバッグ(実行)されている可能性がありますか?

アプリケーションがロードされたときにデータベースが機能するので、リストボックスに関連付けられ、データをデータベースから正しくロードするため、実際にはそうは思いません。

答えて

5

ファイルApp.configファイルでproviderNameでを追加します。

string StartupPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase); 

StartupPathを使用して、あなたはそのパスにデータベース名を追加し、接続文字列に追加することができます:

string datalogicFilePath = Path.Combine(StartupPath, "Datalogic.sdf"); 
string connectionString = string.Format("DataSource={0}", datalogicFilePath); 
1

あなたはWinCEのために動作させる必要があります。私はあなたのターゲットにC:\\Documents and Settings\\があるとは思わないでしょう。

データベースはあなたのapp.configで...

ルックに動作しますので、私は本当にそうは思わない、多分あなたはすでにれたconnectionStringがありますか?

+0

手動で作成していないとapp.configはありますか?私はソリューションエクスプローラでそれを見ません。 – rfc1484

+0

いいえ、私は忘れましたが、CEはそれらを使用していません。それでも、あなたの質問では、あなたはデータを持っていると言いますので、どこで問題が起こりますか? –

+0

問題は、コンピュータのデータベースに接続しようとしましたが、Windows CE端末で検索していたため、見つからなかったためです。とにかくそれは今修正されました。 – rfc1484

0

誰もが同じ問題を抱えている場合に備えて、ここで私はそれを修正しました。

ビジュアルスタジオでアプリケーションをWindows CE端末デバイスに実行すると、そのアプリケーションがそこにコピーされ、データベースにもコピーされます。したがって、接続文字列は、端末に関連するURIを使用する必要があり、コンピュータのパスとは関係ありません。

0

データソースプロパティにDBファイルのパスを与え、我々は実行ファイルのフルパスを取得するには、次の使用のWin CEアプリケーションでは

<add name="Keyname" connectionString="Data Source=DBPath\Database1.sdf" providerName="Microsoft.SqlServerCe.Client.3.5" /> 
関連する問題