繁体   English   中英

System.NotSupportedException:“不支持给定路径的格式。”

[英]System.NotSupportedException: 'The given path's format is not supported.'

string dbPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
dbPath = Path.Combine(dbPath, "Database1.mdf");
cn = new SqlConnection (@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory| "+dbPath+";Integrated Security=True");
GetAllRecords();

当我运行此代码时,它会显示此错误

System.NotSupportedException:“不支持给定路径的格式。”

我想连接位于当前用户文件夹中的数据库。 如何解决这个问题?

连接字符串的AttachDbFilename属性必须实际包含文件的路径。 你的显然没有。 在运行时, |DataDirectory| 被替换为数据目录的路径,这很可能是运行可执行文件的文件夹。 如果您的数据文件在您的文档文件夹中,那么它显然不在程序文件夹下,那么您为什么要使用|DataDirectory| 有吗? 摆脱它并使用数据文件的路径。

|DataDirectory|的要点是您可以将数据文件放在程序文件夹中并对路径进行硬编码,即使在运行时您实际上并不知道该文件夹的路径。 如果您没有将数据文件存储在数据目录中,则不要使用|DataDirectory| 在连接字符串中。 当您在项目文件夹中有一个源数据文件时最有用,该文件在您构建时会自动复制到 output 文件夹中。 |DataDirectory| 然后将在调试时和发布后工作,无论应用程序在哪里。

我认为它只需要new SqlConnection ($"...AttachDbFilename={dbPath}"); 没有DataDirectory

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM