无法打开MDF文件 |本地 SQL Server 数据库

Unable to open mdf file | Local SQL Server database

提问人:YandaMazantsana 提问时间:11/3/2023 最后编辑:marc_sYandaMazantsana 更新时间:11/3/2023 访问量:45

问:

我正在使用 Visual Studio 2022。我创建了一个WPF程序,该程序可以使用以下相对连接字符串访问本地数据库

"Data Source = (LocalDB)\\MSSQLLocalDB;attachdbfilename=\\studyDB.mdf;Integrated Security = True;";

当我的连接字符串不是相对的,并且直接用于我的本地数据库时,我没有问题,可以更新我的数据库;但是,当我将其设置为相对时,我得到以下异常:

System.Data.SqlClient.SqlException:尝试为文件 \studyDB3.mdf 附加自动命名的数据库失败。存在同名的数据库,或者无法打开指定的文件,或者它位于 UNC 共享上。

请告诉我为什么我总是收到此错误。

C# sql-server visual-studio 连接字符串

评论

0赞 Cetin Basoz 11/3/2023
“存在同名的数据库,或者无法打开指定的文件,或者它位于 UNC 共享上” 您确定您键入的路径正确吗?例如,在您的示例中,它位于驱动器的根目录中,这对于 db 文件来说是一个不寻常的位置。和 FWIW,不要使用 localDB 和 attachdb,而只是使用 SQLExpress 和已经附加的 db。
1赞 GuidoG 11/3/2023
当你写作时,你认为系统会从哪里开始寻找?我假设您认为它会从应用程序所在的文件夹开始,但这完全不确定。您应该在应用程序中生成连接字符串,并检索应用程序启动的路径并使用该路径\studyDB.mdf;
1赞 Charlieface 11/3/2023
\ 表示转到根文件夹。无论如何,你不应该使用 stackoverflow.com/questions/11178720/...只需正常附加数据库即可。C:\ AttachDbfilename
0赞 wenbingeng-MSFT 11/6/2023
为什么要使用相对路径来附加数据库文件?在连接字符串中使用相对路径时,应用程序将在相对于 WPF 项目位置的目录中查找数据库文件。确保 StudyDB.mdf 文件位于正确的相对路径中。如果绝对路径本身可以工作,则无需尝试使用相对路径。相对路径的处理相对复杂。

答: 暂无答案