1

我在我的 App_Data 文件夹中获得了 NORTHWND.mdf 和 NORTHWND.LOG 的副本

我的连接字符串:

   <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" />

一切正常,但这似乎是错误的,因为我不希望用户将连接字符串更改为他们的路径,这就是为什么我想把它放在 App_Data 或列表中给 .\SQLEXPRESS 的相对路径,这也没有'工作:

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

请对此问题有所了解,必须有一些配置可以使这成为可能。提前致谢。伊兰

4

1 回答 1

1

我认为您不能SqlCacheDependencyauto-attach (SQLEXPRESS)类型连接字符串一起使用。

您需要在 Management Studio 中附加数据库,并将连接字符串更改为如下所示:

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

然后你需要执行 ALTER DATABASE NORTHWIND SET ENABLE_BROKER

如果您需要为用户提供这种设置,那么您可以编写一个 SQL 脚本来为他们​​执行此操作。

于 2011-09-24T19:04:21.887 回答