【发布时间】:2015-07-08 08:00:01
【问题描述】:
我是 C# 新手。我想在 C# 的输出软件中使用我的 Microsoft SQL Server 数据库文件test.mdf。过去,我只是像这样在 Visual Studio 中复制连接字符串:
Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Home\Documents\test.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True
如您所见,数据库文件路径为:C:\Users\Home\Documents\test.mdf;
当我在 Visual Studio 2008 中为我的软件创建设置并在另一台 PC 上安装该软件时,出现错误:
尝试为文件
C:\User\Home\Document\test.mdf附加自动命名数据库失败 ...
所以我想用安装文件夹路径来解决这个文件:
string dir = Application.StartupPath + "\\" + "test.mdf";
但是当我想在 Visual Studio 2008 中运行程序时会出错
string dir = Application.StartupPath + "\\" + "test.mdf";
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=" + dir + ";Integrated Security=True;Connect Timeout=30;User Instance=True");
错误 1 字段初始值设定项无法引用非静态字段, 方法或属性 'phonebook.Form1.dir' C:\Users\Home\Documents\Visual Studio 2008\Projects\电话簿\电话簿\Form1.cs 25 95 电话簿
更新
当我使用时
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename="+ Application.StartupPath +" \\test.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
错误:
一个或多个文件与数据库的主文件不匹配。如果 您正在尝试附加数据库,请使用 正确的文件。如果这是一个现有的数据库,该文件可能是 已损坏,应从备份中恢复。无法打开用户 默认数据库。登录失败。用户“Home-PC\Home”登录失败。
虽然我在那里复制了test.mdf 文件
【问题讨论】:
-
尝试使用相对路径,如果文件位于程序根目录中,例如“.\\test.mdf”。
-
除了修复你的错误,我建议你使用
SqlConnectionStringBuilder来创建你的连接字符串,以避免得到无效的值。 -
@Thorarins 这不起作用:[code]SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=./test.mdf;Integrated Security=True;Connect Timeout=30 ;用户实例=True");[/code]
-
还有这个:SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=.\test.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True") ;
-
@ThorstenDittmar 你能给我正确的代码吗?
标签: c# sql-server visual-studio setup-project