0

プログラムがデータベースを開こうとすると、次のようになります。

エラー メッセージ: ログインで要求されたデータベース "Chinatowndb" を開けません。ログインに失敗しました。ユーザー「Lee-VAIO\Lee」のログインに失敗しました。

コードは接続文字列用です:

conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=Chinatowndb;Integrated Security=True;User Instance=True");

コードを次のように変更すると:

conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=Chinatowndb;Integrated Security=True");

できます。今、最初の接続文字列、別のデータベースを使用する別のプログラムがあり、動作します。別のプログラムには、App_Data フォルダーを含む .mdf ファイルがあることに注意してください。Chinatowndb.mdf は C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA に保存されています。

エラーの理由

4

3 に答える 3

0

mdf データベースの場合、文字列接続形式を変更する必要があります。同じではありません

Server=.\SQLExpress;AttachDbFilename=c:\mydbfile.mdf;Database=dbname; Trusted_Connection=Yes;

Or 

Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; 

データベース=データベース名;Trusted_Connection=はい;

リンク :

于 2012-08-24T12:56:31.687 に答える
0

これを行うと、最初のものは機能します

Go to Query Window in SQL Server Management Studio and type this:

exec sp_configure 'user instances enabled', 1. 
Go
Reconfigure

以下もお読みください

ローカル SQL Server Express インスタンスでのユーザー インスタンスの使用

ユーザー インスタンス機能は、接続中にオンザフライで新しい SQL Server インスタンスを作成します。これは、ローカルの SQL Server インスタンスでのみ機能し、ローカルの名前付きパイプを介して Windows 認証を使用して接続する場合にのみ機能します。目的は、コンピューター上で制限付きの管理者権限を持つユーザーに対して、完全な権限を持つ SQL Server インスタンスを作成できるようにすることです。

Data Source=.\SQLExpress;Integrated Security=true; AttachDbFilename=|DataDirectory|\mydb.mdf;User Instance=true;

ユーザー インスタンス機能を使用するには、SQL Server で有効にする必要があります。これは、次のコマンドを実行することによって行われます: sp_configure 'user instances enabled', '1'. この機能を無効にするには、sp_configure 'user instances enabled', '0' を実行します。

于 2012-08-24T13:01:29.020 に答える
0

私の場合、database.mdfプロジェクトからファイルを除外し、AttachDatabase:database.mdf接続文字列から削除してuser instance=false.

私のためにうまく働いています。データベースからデータを取得できます。

于 2017-11-20T12:06:12.847 に答える