0

私はVisualStudio2008でC#Windowsプログラムに取り組んでいます。通常、私は学校から直接USBドライブで作業しています。しかし、自宅のハードドライブにフォルダをコピーすると、データベースに書き込もうとすると、SQL例外が処理されなくなります。conn.Open()で処理されません。ライン。これが未処理の例外です

データベース'L:\ system \ project \ the_project \ the_project \ bin \ Debug\PatientMonitoringDatabase.mdf'は既に存在します。別のデータベース名を選択してください。ファイル'C:\ Documents and Settings \ Administrator \ My Documents \ system \ project \ the_project \ the_project \ bin \ Debug\PatientMonitoringDatabase.mdf'をデータベース'PatientMonitoringDatabase'として添付できません。

接続文字列に|DataDirectory|と表示されているので、どのドライブでも機能するはずです...接続文字列は次のとおりです。

string connStr = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\PatientMonitoringDatabase.mdf; " +
                "Initial Catalog=PatientMonitoringDatabase; " +
                "Integrated Security=True";
4

3 に答える 3

1

ここでの不満は、ローカルのSQLServerExpressインストールにすでにPatientMonitoringDatabaseが接続されて実行されていることだと思います。

localhostSQL Server Management Studio Expressに接続し(インストールされていない場合は、ここからダウンロードPatientMonitoringDatabase)、既存のデータベースを削除/デタッチします。永続データベースであろうと、実行中のアプリケーション内でのみアクティブであろうと、SQLServerインスタンスに同時に接続された同じ名前の2つのデータベースを持つことはできません。

于 2010-03-07T00:35:10.187 に答える
0

SQL ServerExpressインスタンスにデータベースファイルを開く権限がないために発生する2番目の例外。ファイルのアクセス許可とは何ですか?SQLServerは何の下で実行されていますか?

于 2010-03-09T02:16:15.133 に答える
0

問題が解決しました。その1つで幸運になりました。マイクロソフトのフォーラムを閲覧してヒントを得ました。ヒントから「SQLServerConfigurationManager」を開くことになり、「SQL Server(SQLEXPRESS)」で何かをしなければなりませんでした。そこでダブルクリックして、「ビルトインアカウント」を「ネットワークサービス」から「ローカルシステム」に変更しました。そして今それは動作します....私は私が推測する幸運になりました...

ただし、データベースをデタッチする必要があります。そのために、thx Nick Craver

于 2010-03-12T04:42:19.963 に答える