存在同名数据库,或无法打开指定文件,或位于 UNC 共享上

新手上路,请多包涵

当我在新 PC 上运行我的项目时出现此错误。为了避免这种情况,我每次都必须复制粘贴新的连接字符串。有什么办法可以避免这种情况……我有 3 个不同的数据库,它非常烦人 O_O

 SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=D:\\Users\\Yoro\\Desktop\\WAPent 3.0 (1)\\WAPent 3.0\\WAPent 3.0\\WAPent 2.0\\WAPent 2.0\\App_Data\\LoginStuff.mdf;Integrated Security=True;User Instance=True");

网络配置代码

    <connectionStrings>
  <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
   providerName="System.Data.SqlClient" />
  <add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\LoginStuff.mdf;Integrated Security=True;User Instance=True"
   providerName="System.Data.SqlClient" />
 </connectionStrings>

原文由 user2625486 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 424
1 个回答

在您使用的 web.config 中 |DataDirectory|这是数据目录路径的替代。这是通过使用设置

AppDomain.CurrentDomain.SetData("DataDirectory", newpath)

当您不设置 |DataDirectory| 时当它是一个 web 项目时,它默认到 App_Data 文件夹。因此,查看您的代码,DataDirectory 表示的路径可能不包含数据库文件。

有关数据目录的更多信息,请查看这篇(较旧的) 文章

原文由 Marco 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题