【问题标题】:how i make one connection string run in all pc? [closed]我如何让一个连接字符串在所有电脑上运行? [关闭]
【发布时间】:2013-05-24 11:43:40
【问题描述】:

我在创建新窗口后遇到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 随处可见?

【问题讨论】:

  • 您可以编辑您的问题,无需评论。 F:\ 驱动器是什么?本地驱动器还是网络驱动器?如果是本地的,那么您得到了解释,如果是网络,我建议使用网络路径而不是映射的驱动器号,因为它可以在您组织的不同计算机上发生变化。
  • 本地一个 - 不是网络
  • 你所说的任何地方是什么意思?只要您有互联网连接,它是在地球上的任何地方,还是在您的本地网络上(例如在家中或办公室)?
  • 好吧,那么你得到这个错误的原因似乎很明显。如果您尝试打开不在计算机上的本地文件,显然它无法工作...
  • any where mean when i deliver the project to my customer he can open --and when copy my project in other pc its work i am trying to open database.mdf in my pc but when chose it the发生错误

标签: c# sql connection-string


【解决方案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 上的此问题

【讨论】:

  • 然后我把我的路径?但是,当我将带有 db 的项目放在其他驱动器 D/wefrwe/werwer 中时,对于 exp 其在 F/sdas/asdasd 上的路径发生更改时,它会起作用吗? @Steve 对不起,但我是 C# 课程的新学生
  • AppDomain.CurrentDomain.SetData("|DataDirectory|\", "Store-Manager\storemanager.mdf");我做这样的?
  • 您将 MDF 文件放在相对(对于您的应用程序)已知目录中,然后调用 SetData("DataDirectory", ....) 到您的应用程序的可执行路径。我假设你有一个 winform 或 wpf 应用程序
  • windows form 真的比q :) 尝试将数据库附加到项目时出现“建立与 SQL Server 的连接时发生网络相关或特定于实例的错误”的错误怎么办?
  • Sql Server Express 是否安装在目标 PC 上?
猜你喜欢
  • 2017-06-16
  • 1970-01-01
  • 2017-04-17
  • 2012-08-17
  • 1970-01-01
  • 1970-01-01
  • 2016-11-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多