我在我的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添加到页面中 当我放置代码时:Shown in 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"/>
请详细说明这个问题,必须有一些配置才能实现这一目标。 提前致谢。 伊兰。
答案 0 :(得分:1)
我认为您不能将SqlCacheDependency
与auto-attach (SQLEXPRESS)
类型的连接字符串一起使用。
您需要在Management studio中附加数据库,并将连接字符串更改为:
server=(local);database=Northwind;Integrated Security=SSPI;
然后你需要执行ALTER DATABASE NORTHWIND SET ENABLE_BROKER
如果您需要为用户提供此类设置,那么您可以编写一个SQL脚本来为它们执行此操作。