0

SDF データベースのパスの設定に問題があります。

私の元のつながり

<add name="Model1Container" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlServerCe.4.0;provider connection string=&quot;data source=|DataDirectory|\Database1.sdf&quot;" providerName="System.Data.EntityClient" /></connectionStrings>

次に、ConfigurationManager を使用して db 接続文字列を取得しようとしましたが、エラーが発生しました (メタデータはサポートされていません)。

その後、接続文字列を使用する代わりに、次のような他の方法をいくつか試しました。

string StartupPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase);
        string datalogicFilePath = Path.Combine(StartupPath, "Database1.sdf");
        string connectionString = string.Format("DataSource={0}", datalogicFilePath);

これはURI形式の例外をスローします

@"Data Source = |DataDirectory|\Database1.sdf"

これは ExecuteNonQuery に対して 1 を返すことができますが、データベース自体に変更は見られません。

その後、出力ディレクトリのプロパティにコピーする可能性があることに気付きました。「コピーしない」を試みたところ、bin\database1.sdf が見つからないというエラー メッセージが表示されました。「新しい場合はコピー」に戻しました。

しかし、データベースCへのフルパスを使用していたとき:................\Project\database1.sdf、dbを更新できました。フルパスを提供するのではなく、それを行う方法はありますか?

4

2 に答える 2

0

私は同じ問題を抱えて最終的に解決しました。実際にはデータを保存しますが、サーバーエクスプローラー(通常はアプリケーションのルートフォルダーにあります)に表示される.sdfには保存されませんが、アプリケーションを公開すると、デバッグフォルダーの.sdfにも保存されます正常にデータを挿入するルート .sdf で公開します。私があなたを混乱させていないことを願っています。-マソロジー

于 2013-10-01T04:41:48.467 に答える