0

私はC#プログラミングにかなり慣れていないので、SQLデータベースからデータを取得したり、画像をピクチャボックスにロードしたりする必要があるVS2012のWindowsフォームアプリケーションに取り組んでいます。絶対パスの説明 (「D:\ProjectFolder\DbaseFolder\Dbase.sdf」など) を使用するか、次のようにデータディレクトリへの相対パスを使用して、データベースに正常に接続できました。

myConnection.ConnectionString = 
"Data Source=|DataDirectory|\\Dbase.sdf";

これは機能します。ただし、データベースを datadirectory のサブフォルダーに配置したいのですが、接続文字列を作成する方法がわかりません。私は次のように考えていました:

myConnection.ConnectionString = 
"Data Source=|DataDirectory|\\DbaseFolder\\DbFilm.sdf";

しかし、それはうまくいきません。同じ問題は、画像をピクチャボックスに配置する場合にも当てはまります。データ ディレクトリのサブフォルダへの相対パスを作成するにはどうすればよいですか?

4

1 に答える 1

1

そこで、サンプル プロジェクトを作成し、GitHub ページにアップロードしました

次のコードは、私にとっては問題なく機能します。

    using (var con = new SqlCeConnection())
    {
        con.ConnectionString = @"Data Source = |DataDirectory|\Database\DB.sdf;Persist Security Info=False";
        var cmd = new SqlCeCommand("SELECT * FROM TEST", con);
        con.Open();
        var data = new DataTable("whatever");
        data.Load(cmd.ExecuteReader());
        con.Close();
    }

また、ベスト プラクティスとして使用できるように、サンプルの app.config に接続文字列も含めました。このリンクからプロジェクトをzipとしてダウンロードできます

于 2014-07-14T20:44:11.107 に答える