美好的一天,
我的目标是为Windows服务创建一个msi,在安装过程中必须运行各种sql脚本。
我想要做的是创建一个msi,当用户运行它时,它会在PC上安装服务并运行3个.sql脚本,一个用于创建数据库,一个用于填充,一个用于添加存储过程
我可以使用the msdn overview
为服务添加创建设置项目我的问题是我不知道如何在安装期间运行sql脚本(以及如何指定sql连接)
有没有办法在visual studio中执行此操作,还是需要使用批处理文件/购买InstallShield?
感谢任何帮助,
问候
杰夫
编辑:我正在使用visual studio 2010 Professional和SQLServer 2012
答案 0 :(得分:0)
您可以在安装过程中运行SQL脚本,就像在任何其他C#应用程序中执行它一样。
在MSDN overview you've mentioned in the question中,提到在安装过程中编写自己的代码,因此我假设您已经知道如何执行此操作。
有很多方法可以做到这一点。以下是here引用的许多例子中的一个例子:
string queryString = "SELECT tPatCulIntPatIDPk, tPatSFirstname, tPatSName, tPatDBirthday FROM [dbo].[TPatientRaw] WHERE tPatSName = @tPatSName"; string connectionString = "Server=.\PDATA_SQLEXPRESS;Database=;UserId=sa;Password=2BeChanged!;"; using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = new SqlCommand(queryString, connection); command.Parameters.AddWithValue("@tPatSName", "Your-Parm-Value"); connection.Open(); SqlDataReader reader = command.ExecuteReader(); try { while (reader.Read()) { Console.WriteLine(String.Format("{0}, {1}", reader["tPatCulIntPatIDPk"], reader["tPatSFirstname"]));// etc } } finally { // Always call Close when done reading. reader.Close(); } }