繁体   English   中英

如何在 C# 应用程序中创建指向本地数据库的通用文件路径?

[英]How do I create a generic file path to a local database in a C# Application?

我有一个简单的数据输入 Windows 表单,带有链接到本地数据库的 datagridview 显示。 当我运行程序并尝试在另一台计算机上添加数据时,我收到以下消息:

您的应用程序中发生了未处理的异常。 如果单击继续,应用程序将忽略此错误并尝试继续。 如果单击退出,应用程序将立即关闭。

尝试为文件 C:\Users\roberto.yepez\Documents\Visual Studio\2010\Projects\Financial Aid Calculator\Financial Aid Calculator\StudentInfo1.mdf 附加自动命名的数据库失败。 存在同名数据库,或无法打开指定文件,或位于 UNC 共享上。”

文件路径是我编写程序的计算机上的路径。

这是我的代码:

SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename='C:\Users\roberto.yepez\Documents\Visual Studio 2010\Projects\Financial Aid Calculator\Financial Aid Calculator\StudentInfo1.mdf';Integrated Security=True".ToString());

我是一个自学成才的程序员,请帮忙::)

我相信您遇到了问题,因为您的代码尝试将 StudentInfo1.mdf(其路径在连接字符串中)附加到的本地 sql 服务器已经包含一个名为 StudentInfo1 的数据库 - 它决定尝试创建一个数据库此名称的名称基于 mdf 文件的名称。 我猜您可以通过在连接字符串中指定 Initial Catalog 来选择自己的名称,但这意味着有两个数据库可能具有相同的表集并且可能会造成混淆

根据我发布的评论,我建议您使用 SQL Server Management Studio 永久附加您的数据库(您已经这样做了),然后调整您的连接字符串,使其引用永久附加的数据库。 这减少了您的下一个问题是“我的代码说它正在更新我的数据库但我看不到任何更改??”的可能性。

请移动此连接字符串

“数据源=(LocalDB)\MSSQLLocalDB;AttachDbFilename='C:\Users\roberto.yepez\Documents\Visual Studio 2010\Projects\Financial Aid Calculator\Financial Aid Calculator\StudentInfo1.mdf';Integrated Security=True”

app.config 文件 部署到生产环境时,根据生产机器设置更改该 app.config 中的路径。

您甚至可以在 app.config 上应用转换以部署在各种机器/场景中。

暂无
暂无

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

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