【IT168 技术文档】这一节将讲述安装过程中如何部署数据库,以及执行其他组件的安装。
在这里使用直接执行sql脚本来创建数据库。(也可以使用附件数据库文件的形式)
只要在Install方法中添加执行sql脚本的方法,就是使用SqlConnection连接数据库操作。
using(SqlConnectionconnection = newSqlConnection(connectionString))
{
connection.Open();
ExecuteSQL(connection, GetResource("createdatabase.sql"));
}
/// <summary>
/// 执行sql语句
/// </summary>
/// <param name="connection"></param>
/// <param name="sql"></param>
void ExecuteSQL(SqlConnection connection, string sql)
{
SqlCommand cmd = new SqlCommand(sql, connection);
cmd.ExecuteNonQuery();
}
/// <summary>
/// 获取数据库登录连接字符串
/// </summary>
/// <param name="databasename">数据库名称</param>
/// <returns></returns>
private string GetConnectionString(string databasename)
{
return "server=" + Context.Parameters["server"].ToString() + ";database=" + (string.IsNullOrEmpty(databasename) ? "master" : databasename) + ";User ID=" + Context.Parameters["user"].ToString() + ";Password=" + Context.Parameters["pwd"].ToString();
}
{
connection.Open();
ExecuteSQL(connection, GetResource("createdatabase.sql"));
}
/// <summary>
/// 执行sql语句
/// </summary>
/// <param name="connection"></param>
/// <param name="sql"></param>
void ExecuteSQL(SqlConnection connection, string sql)
{
SqlCommand cmd = new SqlCommand(sql, connection);
cmd.ExecuteNonQuery();
}
/// <summary>
/// 获取数据库登录连接字符串
/// </summary>
/// <param name="databasename">数据库名称</param>
/// <returns></returns>
private string GetConnectionString(string databasename)
{
return "server=" + Context.Parameters["server"].ToString() + ";database=" + (string.IsNullOrEmpty(databasename) ? "master" : databasename) + ";User ID=" + Context.Parameters["user"].ToString() + ";Password=" + Context.Parameters["pwd"].ToString();
}
在这里使用嵌入式资源的形式打包sql脚本。
我们添加createdatabase.sql和dropdatabase.sql添加到项目中,如下图:
右击createdatabase.sql查看属性,如下图:
设置生成操作为嵌入的资源。dropdatabase.sql也是如此操作。