1

App_DataフォルダーにNORTHWND.LOGとともにNORTHWND.mdfのコピーを取得しました

私の接続文字列:

   <add name="northwind_connection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFileName=|DataDirectory|NORTHWND.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />

接続を開いたり閉じたりしようとすると、すべてうまくいきます。

  string connStr = WebConfigurationManager.ConnectionStrings["northwind_connection"].ToString();            
  SqlConnection conn = new SqlConnection(connStr);            
  SqlCommand command = new SqlCommand("Select * From Products");
  command.Connection = conn;                
  conn.Open();
  SqlDataReader reader = command.ExecuteReader();            
  GridView1.DataSource = reader;
  GridView1.DataBind();
  conn.Close();

このコードの横に、コードを配置するときにページに SqlCacheDependency を追加したい: msdn に表示

     SqlDependency.Start(connStr);

次のエラーが表示されます:

ファイル C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\10.0\NORTHWND.mdf の自動名前付きデータベースをアタッチしようとして失敗しました。同じ名前のデータベースが存在するか、指定されたファイルを開くことができないか、ファイルが UNC 共有にあります。

なぜこれが起こるのか、SqlCacheDependency が機能するために何を設定する必要がありますか。

前もってエランに感謝します。

さらに、接続文字列を特定の文字列に変更する場合は、それを追加したいと思います

  <add name="northwind_connection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\NORTHWND.MDF; Integrated Security=True" providerName="System.Data.SqlClient" />

すべてが正常に機能しますが、ユーザーが接続文字列を自分のパスに変更することを期待していないため、それは間違っているようです.作業:

  <add name="myConnection"  connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=NORTHWND;Integrated Security=True;" providerName="System.Data.SqlClient"/>

この問題に光を当ててください。これを可能にする構成が必要です。前もって感謝します。エラン。

4

1 に答える 1

1

タイプ接続文字列SqlCacheDependencyでは使用できないと思います。auto-attach (SQLEXPRESS)

Management Studioでデータベースを接続し、接続文字列を次のように変更する必要があります。

server=(local);database=Northwind;Integrated Security=SSPI;

次に、実行する必要があります ALTER DATABASE NORTHWIND SET ENABLE_BROKER

この種のセットアップをユーザーに提供する必要がある場合は、ユーザーのためにそれを実行するSQLスクリプトを作成できます。

于 2011-09-24T19:04:21.887 に答える