2012-06-01 59 views
0

我用下面的连接字符串错误在C#中访问数据库

static string appath = Library_Records.Program.app_path; 

string connectionstring = @"Data Source=.\SQLEXPRESS;AttachDbFilename=appath;Integrated Security = true;User Instance = True"; 
connection = new SqlConnection(connectionstring); 

static string dbfiles = null; 
internal static string app_path 
{ 
    get { return dbfiles = "|Datadirectory|\\5700.mdf"; } 
} 

Library_Records访问基于服务数据库:命名空间,程序是包含Main()

当我打电话connection.Open()类的名称,它给出以下错误

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

5700是我的数据库与.mdf扩展名。如何纠正这个问题?

回答

3

变量永远不会被字符串中的值自动替换,因此AttachDbFilename=appath;将不起作用。

你应该这样做:

string connectionstring = 
    string.Format(@"Data Source=.\SQLEXPRESS;AttachDbFilename={0};Integrated Security=True;User Instance=True", appath); 

connection = new SqlConnection(connectionstring); 
+0

它的工作三江源先生现在,如果我创建一个安装文件(.exe),然后将数据库是任何其他计算机上访问,因为我首先创建一个设置在AttachDbFilename = C:\ Users \ Sarao \ Documents \ prjs \ Library_Records \ Library_Records \ 5700.mdf当我在另一台计算机上运行它时,它表示该数据库不可访问,随后是路径 – jaggi

+0

只要将数据库文件复制到另一台计算机与您的计划一起 - 它应该工作。 –