作为Visual Studio 2010安装项目的一部分运行SQL脚本

时间:2015-02-23 15:32:10

标签: c# visual-studio-2010 installation

美好的一天,

我的目标是为Windows服务创建一个msi,在安装过程中必须运行各种sql脚本。

我想要做的是创建一个msi,当用户运行它时,它会在PC上安装服务并运行3个.sql脚本,一个用于创建数据库,一个用于填充,一个用于添加存储过程

我可以使用the msdn overview

为服务添加创建设置项目

我的问题是我不知道如何在安装期间运行sql脚本(以及如何指定sql连接)

有没有办法在visual studio中执行此操作,还是需要使用批处理文件/购买InstallShield?

感谢任何帮助,
问候
杰夫

编辑:我正在使用visual studio 2010 Professional和SQLServer 2012

1 个答案:

答案 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();
  }
}