我如何使一个连接字符串在所有pc运行

本文关键字:pc 运行 字符串 何使一 连接 | 更新日期: 2023-09-27 18:15:15

我有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在任何地方?

我如何使一个连接字符串在所有pc运行

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

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