在制作新窗口后,connection string
出现问题无效
它说
发生与网络相关或特定于实例的错误 建立与SQL Server的连接
这是我的连接字符串:
<add name="storemanagerEntities1"
connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.;AttachDbFilename=F:\ENjaz\KKKK\Store-Manager\Store-Manager\storemanager.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;Initial Catalog=storemanager;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True""
providerName="System.Data.EntityClient"/>
有没有办法让connection work
在任何地方?
答案 0 :(得分:1)
更改连接字符串的这一部分
AttachDbFilename=|DataDirectory|\Store-Manager\storemanager.mdf
DataDirectory是一个替换字符串,可以使用
从您的程序控制AppDomain.CurrentDomain.SetData("DataDirectory", ".....");
这应该在调用任何数据访问代码之前完成 当然,在目标PC上,你应该确保拥有路径的相对部分
让我举一个实际的例子。
您使用此
设置连接字符串....;AttachDbFilename=|DataDirectory|\storemanager.mdf;....
在目标PC中,将数据库文件部署在名为Store-Manager
的子文件夹中,并将其创建为CommonApplicationData文件夹的子文件夹
(在Win7上这是C:\ programdata)
然后,在代码内部,在任何数据访问代码之前,编写
string appPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
AppDomain.CurrentDomain.SetData("DataDirectory", Path.Combine(appPath, "Store-Manager");
当然,在目标PC上应该已经安装了Microsoft Sql Server Express(或不安装)。
请参阅Microsoft forums上的这篇文章,或this same site
上的这个问题