0

我正在使用本地 SQL Server Express 数据库作为数据源创建一个简单的 Windows 窗体应用程序。在调试期间,数据库文件被复制到调试文件夹中,一切正常,但这不是我想要的。我只想使用数据库文件的一份副本。

我发现的解决方案是连接字符串中数据库文件的硬编码路径:

Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\db.mdf;Integrated Security=True;User Instance = true

那么,有没有一种更智能的方法可以将 VS 配置为仅使用一个 db 文件,而不是在连接字符串中硬编码它的路径?

4

1 回答 1

0

整个User Instance 和 AttachDbFileName=方法是有缺陷的 - 充其量!在 Visual Studio 中运行您的应用程序时,它将围绕.mdf文件进行复制(从您的App_Data目录到输出目录 - 通常.\bin\debug是您的应用程序运行的位置),并且很可能,您的INSERT工作正常 - 但您只是看错了 . mdf文件到底!

我认为真正的解决方案是

  1. 安装 SQL Server Management Studio Express(如果尚未安装)

  2. 在SSMS Express中创建您的数据库,给它一个逻辑名称(例如MyDatabase

  3. 使用它的逻辑数据库名称(在服务器上创建它时给出)连接到它,并让服务器处理所有与文件相关的详细信息;不要乱用物理文件和用户实例。在这种情况下,您的连接字符串将类似于:

    Data Source=.\\SQLEXPRESS;Database=MyDatabase;Integrated Security=True
    

    其他一切都和以前完全一样......

于 2013-08-21T11:43:52.477 回答