【问题标题】:Setting The Path of an db mdf file in local folder在本地文件夹中设置 db mdf 文件的路径
【发布时间】:2012-03-14 14:38:26
【问题描述】:

为什么我在数据库上下文中插入的路径不起作用?这是我的路径的代码

private string dbPath = @"TEST.MDF"
DataClasses1DataContext myDbContext = new DataClasses1DataContext(dbPath);

但是当我运行查询时,这给了我一个错误

尝试为文件 TEST.MDF 附加自动命名的数据库失败。存在同名数据库,或指定文件不能 被打开, 或者它位于 UNC 共享上。

这就是我的文件夹的样子

mdf 文件与我的 cs 源代码位于同一位置,但问题是它们没有正确读取路径。

我的想法是,当我转移到不同的电脑时,我不必一次又一次地设置路径。有什么解决办法吗?

【问题讨论】:

  • 它与您的*.cs 文件位于同一位置 - 但您的可执行文件 不在此目录中!当你构建和运行时,你的可执行文件很可能是在 bin\debug 中构建的 - 在那个目录中,没有 test.mdf 文件.......
  • 所以我必须使用? /../../Test.MDF?
  • 否 - 您应该将您的 MDF 文件附加到您计算机上的 SQL Server 实例,给它一个 逻辑名称 并使用它连接到它逻辑名称,而不是摆弄 .MDF 文件及其位置.....
  • 但是如果我要去另一台电脑怎么办?然后在那里工作?如果我要在某处安装此应用程序,我正在尝试考虑
  • 那么你应该使用SQL Server Compact Edition 之类的东西,它是一个简单的单文件数据库——永远不需要安装......

标签: c# database visual-studio path mdf


【解决方案1】:

使用这个连接字符串:

SqlConnection connect = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename="+ AppDomain.CurrentDomain.BaseDirectory.Substring(0, AppDomain.CurrentDomain.BaseDirectory.Length - 10)+"sampleDatabase.mdf;Integrated Security=True");

因为bin\Debug\字符串长度=10,所以我们减去10;现在你可以得到解决方案的路径地址,可以连接MDF数据库了。

【讨论】:

    【解决方案2】:

    最好在项目中添加 .mdf 文件。添加现有项=>从文件夹中选择 .mdf 文件。在项目中添加 .mdf 文件后,在 Web.config 或 App.Config 文件中将自动生成连接字符串,您可以使用该连接字符串来启动您的商店。现在,当您构建项目时,将新的 .mdf 文件复制到 /bin/dubug 文件夹中,您无需编写单行代码来连接您的 .mdf 文件。

    【讨论】:

      【解决方案3】:

      怎么样

      private string dbPath = Application.StartupPath + "\\TEST.MDF";
      

      但是您的 Test.mdf 不在正确的目录中。将其移至 \bin\Debug 以使此代码生效。

      【讨论】:

      • Application.StartUpPath 有什么作用?
      • 它返回可执行文件的文件夹位置。所以说你的 .EXE 在“C:\Programming\Projects\C#\testProject1\bin\Debug”中。这就是它返回的路径。我们必须添加“\\Test.mdf”的原因是将文件名添加到该路径,以便完整路径如下所示:C:\Programming\Projects\C#\testProject1\bin\Debug\Test.mdf
      猜你喜欢
      • 1970-01-01
      • 2020-12-11
      • 1970-01-01
      • 2019-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多