我在C#中创建了我的第一个项目,该项目使用sql server database(文件名:printing.mdf) 我在Sql Server Express上创建了一个数据库,并开发了一个应用程序来操作该数据库。 部署(在客户端的PC上安装sql server,然后手动附加数据库)一切正常。
真正的问题是我想要
对于上一个问题,我尝试过这个连接字符串
Data Source=.\SQLEXPRESS;AttachDbFileName=d:\printingData\printing.mdf;Integrated Security=True;User Instance=True
我还将printing.mdf
复制到d:\printingData
这适用于我的电脑但不适用于客户端电脑
任何与第三方有关的建议。
答案 0 :(得分:1)
您无法自动安装SQL Server。即使这是可能的,但由于在安装过程中完成了大量系统测试/配置,因此非常需要联合国推荐。
您可以使用自定义安装包在安装时将数据库文件附加到现有SQL Server实例。 NSIS是我遇到的最好的安装软件,它有很好的文档和支持(由用户等)。您想要的数据库附件功能是找到的here on the NSIS Wiki pages
当然,您在PC上的D:分区可能不存在于另一台用户自己的计算机上。此外,无法在用户的计算机上自动创建此类分区。要做或者试图这样做会非常具有侵入性。
在我看来,我会创建一些文档来指定软件的推荐配置。您还可以提供有关如何对硬盘进行分区的安装说明。但你会发现用户(特别是临时用户)不想做这样的事情!
编辑:回答你的评论。有关从命令提示符进行安装的信息,请参阅the following MSDN article - 祝您好运,并小心尝试自动执行此操作,这不是一个好主意......
要使用TSQL附加数据库,请使用以下查询:
-- For an .mdf with no log file - rebuild it.
CREATE DATABASE [{0}] ON ( FILENAME = N'{1}' ) ATTACH_REBUILD_LOG;);
-- For a standard attach.
CREATE DATABASE [{0}] ON ( FILENAME = N'{1}' ) FOR ATTACH;
请注意,您可以使用系统存储的进程来附加数据库,但Microsoft正逐步淘汰。
希望这有帮助。