【问题标题】:Connecting a client-Installed C# application to an exported SQL Server database将客户端安装的 C# 应用程序连接到导出的 SQL Server 数据库
【发布时间】:2012-05-06 16:33:34
【问题描述】:

我对创建安装程序非常陌生。此应用程序需要连接到 SQL Server 数据库才能使用。该数据库的表具有应用程序所需的行,因此不需要重建数据库结构。

我可以将数据库导出为.mdf 文件并从那里连接吗?

或者我是否需要在这些计算机上安装 SQL Server Express 作为先决条件并从那里附加数据库?如果是这样,我如何在安装时附加它?

或者是否有其他方法可以将 SQL Server 数据库包含到安装程序中并供已安装的应用程序使用?

【问题讨论】:

    标签: c# sql-server


    【解决方案1】:

    您需要在目标机器上安装 SqlServer(快速或标准)。
    您不需要任何管理应用程序,例如 Sql Server Management Studio。
    然后你可以通过连接字符串将你的 MDF 附加到数据库引擎上

    Server=.\SQLExpress;AttachDbFilename=c:\yourfolder\yourfile.mdf;Database=yourdatabase; Trusted_Connection=Yes;
    

    通过自定义安装程序安装 SqlServer 并非易事。
    如果您的应用程序不打算在本地计算机之外使用,您可以使用LocalDB
    这种风格的sqlserver的安装更容易。

    其他选择是:
    提取一个sql script 来重建您的数据库。 (并提供执行脚本的方法)
    导出需要的数据并执行bulk insert将数据重新插入重建的数据库中

    【讨论】:

    • 所以只需要 SQL Express...如何以及何时将 .mdf 文件附加到已安装的 SQL Express?
    • 这就是连接字符串的工作。通常它已经保存在你的 app.config 中,这个文件是随你的应用分发的,在启动时会被读取,然后每次调用需要访问数据库的方法都可以访问信息并构建打开数据库所需的 SqlConnection。跨度>
    • 出现错误:“文件的目录查找...失败,操作系统错误 5(访问被拒绝。)。无法附加文件...作为数据库 DATABASENAME。”我使用Server=.\SQLExpress;AttachDbFilename=|DataDirectory|db.mdf;Database=db; Trusted_Connection=Yes; MultipleActiveResultSets=True 作为我的连接字符串
    • 这是一个 asp.net 应用程序吗?
    • |DataDirectory| 是设置数据库所在网站内相对路径的快捷方式。它由 ASP.NET/IIS 二人组提供(C# 或 VB.NET 在这里无关紧要)。不能在标准 WinForms 应用程序上工作。在这种情况下,您需要一条物理路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    • 2018-05-16
    • 1970-01-01
    • 2013-03-24
    • 2011-07-31
    • 2011-01-04
    • 2018-03-23
    相关资源
    最近更新 更多