gpt4 book ai didi

c# - C#中的连接字符串错误

转载 作者:太空宇宙 更新时间:2023-11-03 23:33:43 28 4
gpt4 key购买 nike

我是 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 上安装该软件时,出现错误:

An attempt to atach an auto-named database for file C:\User\Home\Document\test.mdf failed ...

所以我想用安装文件夹路径来解决这个文件:

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");

Error 1 A field initializer cannot reference the non-static field, method, or property 'phonebook.Form1.dir' C:\Users\Home\Documents\Visual Studio 2008\Projects\phonebook\phonebook\Form1.cs 25 95 phonebook

更新

当我使用

 SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename="+ Application.StartupPath +" \\test.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

错误:

One or more files do not match the primary file of the database. If you are attempting to attach a database, retry the operation with the correct files. If this is an existing database, the file may be corrupted and should be restored from a backup. Cannot open user default database. Login failed. Login failed for user 'Home-PC\Home'.

虽然我在那里复制了正确的test.mdf文件

最佳答案

如错误消息所述,您不能在初始化另一个实例字段时使用一个实例字段的值。无论如何,您可能都不希望将 dir 作为字段。只需将所有这些移动到构造函数的主体中……或者理想情况下,只在您需要时创建您的SqlConnection。不要在整个应用程序中使用单个实例,而是在每次需要访问数据库时都要经历“创建、使用、处置”循环。 (理想情况下,也不要在您的 GUI 代码中执行此操作...)

关于c# - C#中的连接字符串错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31286769/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com