C# 在本地文件夹中设置db mdf文件的路径

C# 在本地文件夹中设置db mdf文件的路径,c#,database,visual-studio,path,mdf,C#,Database,Visual Studio,Path,Mdf,为什么我在数据库上下文中插入的路径不起作用?这是我的路径代码 private string dbPath = @"TEST.MDF" DataClasses1DataContext myDbContext = new DataClasses1DataContext(dbPath); 但当我运行查询时,这会给我一个错误 尝试为文件TEST.MDF附加自动命名数据库失败。存在同名的数据库,或者无法创建指定的文件 开放,, 或者它位于UNC共享上 我的文件夹就是这样的 mdf文件与我的cs源代码位

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

private string dbPath = @"TEST.MDF"
DataClasses1DataContext myDbContext = new DataClasses1DataContext(dbPath);
但当我运行查询时,这会给我一个错误

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

我的文件夹就是这样的

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

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

怎么办

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

但是您的Test.mdf不在正确的目录中。将其移动到
\bin\Debug
中,此代码才能正常工作。

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

Application.StartUpPath做什么?它返回可执行文件的文件夹位置。因此,假设您的.EXE位于“C:\Programming\Projects\C\testProject1\bin\Debug”中。这就是它返回的路径。我们必须添加“\\Test.mdf”的原因是将文件名添加到该路径中,这样完整的路径看起来像:C:\Programming\Projects\C\#\testProject1\bin\Debug\Test.mdfIt与
*.cs
文件位于同一位置,但您的可执行文件不在此目录中!当您构建和运行时,您的可执行文件很可能是内置在
bin\debug
-并且在该目录中,没有
test.mdf
文件……。我必须使用什么?/../../Test.MDF?否-您应该将MDF文件附加到计算机上的SQL Server实例,为其指定一个逻辑名称,并使用该逻辑名称连接到该实例,而不是在.MDF文件及其位置上乱动……但是如果我要转到另一台计算机怎么办?然后在那里工作?如果我要在某个地方安装这个应用程序,那么你应该使用一个简单的单文件数据库,这是一个需要考虑的问题-永远不需要安装。。。。