-1

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=&quot;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&quot;"
     providerName="System.Data.EntityClient"/> 

有没有办法让我的connection work任何地方?

4

1 回答 1

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 论坛上的这篇文章或同一站点上的此问题

于 2013-05-24T12:08:20.290 回答