1

大学のプロジェクトにVB2008Expressを使用しています。また、SQL Server 2008 Expressを実行していて、SQL Server Management Studioをインストールし、それを使用してデータベースを作成しました。

両方のソフトウェアがインストールされ、ローカルで実行されています。VB2008Expressからデータベースに接続しようとしています。データベース接続ウィザードには、次の3つのオプションがあります。

  1. Accessデータベースに接続する
  2. SQLServer3.5コンパクトDBに接続して
  3. SQLServerデータベースファイルに接続します。

最初の2つへの接続に問題はありませんが、SQLサーバーDBファイル(.mdf)に接続しようとすると、次のエラーがスローされます(「物理ファイルを開くことができません....オペレーティングシステムエラー32:(失敗しましたこのエラーのテキストを取得します。reason:1815.......ファイルの自動名前付きデータベースをアタッチしようとしました.......mdfが失敗しました。同じ名前のデータベースが存在するか、指定されたファイルを作成できません。開かれた、またはUNC共有にあります ")

同じ経験をして問題を克服した人が私を正しい方向に向けてくれたら幸いです。

どうもありがとう。リトルクリッター。

4

1 に答える 1

2

データベースをサーバーから切り離す必要があります。そこでファイルを作成したので、SQLExpressサーバーですでに実行されています。オペレーティングシステムエラー32は共有違反であり、ファイルが使用中であることを意味します。

これを試して:

  1. Sql Express 2008 Managment Studioを開き、オブジェクトエクスプローラーツリーでデータベースを見つけます。
  2. データベースを右クリックし、タスクを選択してから、[切り離し]を選択します
  3. 「データベースのデタッチ」ダイアログが表示されたら、「接続のドロップ」というチェックボックスを選択します
  4. [OK]をクリックします。

データベースをデータベースサーバーから切り離す必要があります。これで、サーバーはそのデータベースを自動的に起動しなくなり、データベースへの排他的アクセスを取得できるようになります。

MDFをさらに編集する場合は、データベースを再接続するか、VB2008Expressに組み込まれているツールを使用する必要があることに注意してください。このため、ほとんどの人はデータベースを接続したままにして、「ユーザーインスタンス」として実行しないことを選択します。データにアクセスする別の方法については、次のリンクを確認してください。方法:サーバーエクスプローラー/データベースエクスプローラーにアクセスして初期化する

とにかく、このように設定する理由があるかもしれません。上記の手順で問題が解決するはずです。あなたのプロジェクトで頑張ってください!

于 2010-03-06T15:25:38.020 に答える