首页 > 解决方案 > 如何在 C# 应用程序中创建本地数据库的通用文件路径?

问题描述

我有一个简单的数据输入 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());

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

标签: c#sqlvisual-studio

解决方案


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

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


推荐阅读