C# 如何使一个连接字符串在所有pc中运行?

C# 如何使一个连接字符串在所有pc中运行?,c#,sql,connection-string,C#,Sql,Connection String,在使新窗口无法工作后,我对连接字符串有问题 上面说 运行时发生与网络相关或特定于实例的错误 建立与SQL Server的连接 这是我的连接字符串: <add name="storemanagerEntities1" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connecti

在使新窗口无法工作后,我对连接字符串有问题 上面说

运行时发生与网络相关或特定于实例的错误 建立与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"/> 


有没有办法让我的
连接在任何地方都能正常工作?

更改连接字符串的这一部分

AttachDbFilename=|DataDirectory|\Store-Manager\storemanager.mdf
DataDirectory是一个替换字符串,可以使用

AppDomain.CurrentDomain.SetData("DataDirectory", ".....");
这应该在调用任何数据访问代码之前完成。
当然,在目标PC上,您应该确保具有路径的相对部分

让我举一个实际的例子

您可以使用此设置连接字符串

....;AttachDbFilename=|DataDirectory|\storemanager.mdf;....
在目标PC中,将数据库文件部署到名为
Store Manager
的子文件夹中,该子文件夹创建为文件夹的子文件夹
(在Win7上,这是C:\programdata)。
然后,在代码内部,在任何数据访问代码之前,编写

string appPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
AppDomain.CurrentDomain.SetData("DataDirectory", Path.Combine(appPath, "Store-Manager");
当然,在目标PC上应该已经安装了Microsoft Sql Server Express(或未安装)


请参阅上的这篇文章或上的这个问题

您可以编辑您的问题,无需对其进行评论。F:\驱动器是什么?本地驱动器还是网络驱动器?如果是本地的,那么您得到了您的解释,如果是网络的,我建议使用网络路径而不是映射的驱动器号,因为它可以在您组织的不同计算机之间更改帐户。本地的-不是网络您所说的任何地方是什么意思?只要你有互联网连接,它是在地球上的任何地方,还是在你的本地网络上(比如在家里或办公室)?那么,很明显你为什么会出现这个错误。如果您试图打开一个不在计算机上的本地文件,显然它无法工作…任何地方都意味着当我将项目交付给客户时,他可以打开--当在其他pc上复制我的项目时,我试图在我的pc上打开database.mdf,但当选择它时,错误发生在我放置路径时?但是,当路径在F/sdas/asdasd上更改为exp-its时,当我将带有db的项目放在其他驱动器D/wefrwe/werwer中时,它会工作吗@Steve sry为您效劳,但我是C#classesAppDomain.CurrentDomain.SetData(“DataDirectory”\,“Store Manager\storemanager.mdf”)的新生;我是这样做的?您将MDF文件放在相对(应用程序)已知的目录中,然后调用SetData(“DataDirectory”,…)到应用程序的可执行路径。我假设您有winform或wpf应用程序Windows窗体(Q:)在尝试将数据库连接到项目时出现错误“与网络相关或特定于实例的错误”如何处理?目标PC上是否安装了SQL Server Express?