1

Visual Studio 2005 を使用しています。Web プロジェクトではなく、Windows アプリケーションだけのプロジェクトを作成します。

Access データベース ファイルをプロジェクトに追加できることを覚えています。サーバーへの接続は必要ありません。データを取得できます。そして、SQL Database ファイルでも同じことをしたいと思っています。

次の手順を実行しました。

  1. プロジェクトを右クリックします。
  2. [既存のアイテムを追加] を選択します
  3. *.mdf ファイルを参照します。
  4. DataSource Config Wizard が表示され、このメッセージが表示されます

    データベースから情報を取得中にエラーが発生しました: ユーザー インスタンスのプロセスの開始に失敗したため、SQL Server のユーザー インスタンスを生成できませんでした。接続が閉じられます。

プロジェクトに mdf ファイルを追加するのに助けが必要です。

4

4 に答える 4

7

まず、MDF ファイルは SQL Server のインスタンスによってのみ読み取ることができます。MDF を展開する場合、アプリケーションはセットアップ中にエンド ユーザーが提供する SQL Server に接続するか、独自のインスタンス (後者の場合は SQL Server Express Edition インスタンス) を展開する必要があります。「方法: SQL Server Express をインストールする」を参照してください。Visual Studio 2008 では、独自のアプリケーション セットアップ MSI に前提条件を追加できます。「Visual Studio 2008 SP1 用の SQL Server 2008 Express ClickOnce Bootstrapper のインストール」を参照してください。

2 つ目の問題は、反対の意見が広く信じられているにもかかわらず、LDF なしで MDF だけを配布すると、苦痛の世界に陥る可能性があることです。リカバリを完了して整合性のある状態にするために LDF を必要とする整合性のない MDF を配布することになる可能性があります。

しかし、より深刻な問題は、データベース展開用のスクリプトではなく、バイナリ (MDF) を展開する計画です。これは失敗する運命にあります。アプリケーションの v. 1.1 のリリースを計画するとすぐに、ユーザー MDF (ユーザーが追加したデータを含む) を新しい MDF に置き換える方法という重要な問題に直面することになります。これが、アップグレード スクリプトを常にデプロイし、プロジェクト内の MDF を忘れる方がはるかに優れている理由です。

于 2011-04-28T17:02:30.080 に答える
1

Access で使用されるコアの Jet エンジンは Windows の一部として組み込まれているため、アプリで Access ファイル (*.mdb) から読み取ることができます。 Sql Server がインストールされていて、適切な権限を持っていない限り、アプリで *.mdf ファイルを使用することはできません。

Sql Server Express Edition または Sql Server Compact Edition (推奨) をアプリと共に配布することができます。もう 1 つのオプションは、完全に管理されたデータベース エンジンを利用できる SqlLite です。

于 2011-04-28T16:53:18.820 に答える
0

.MDFはSQLServerDBであり、MSAccessではありません。MSアクセスは.MDBです。.MDFを単独で読み取ることはできません。ログファイル(.LDF)も必要です。ローカルインスタンスにアタッチすると、新しいインスタンスが作成されます。その後、そのDBに接続できます。

于 2011-04-28T16:48:10.733 に答える
0

展開の問題 (.mdf ファイルとコードの更新バージョン) を解決するために、アプリケーションで使用したすべてのテーブルの .xls ファイルを作成できるユーティリティをアプリケーションに含めることができます (データベースをバックアップします)。これらの .xls ファイルを SQL Server に簡単にインポートし、新しいバージョンの .mdf ファイルを作成して、同じファイルを最新のコードに添付できます。アプリの新しいリリースをデプロイする準備ができました..!

于 2013-07-04T06:43:48.650 に答える