如何用VS2005制作Web安装程序

添加人:admin三级(1315分)   添加时间:2007-06-26    阅读次数:40541  收藏此教程
打开SetupClassLibrary项目下的MyInstaller.Designer.cs,修改此文件。
申明几个变量:
private System.Data.SqlClient.SqlConnection sqlConn;
private System.Data.SqlClient.SqlCommand Command;
private string DBName;
private string ServerName;
private string AdminName;
private string AdminPwd;
     
private string iis;
private string port;
private string dir;
public static string VirDirSchemaName = "IIsWebVirtualDir";

private string _target;
private DirectoryEntry _iisServer;
private ManagementScope _scope;
private ConnectionOptions _connection;

连接数据库服务器到方法:
#region ConnectDatabase 连接数据库
private bool ConnectDatabase()
{
    if (Command.Connection.State != ConnectionState.Open)
    {
        try
        {
            Command.Connection.Open();
        }
        catch(Exception e)
        {
            return false;
        }
    }
    return true;
}
#endregion

如果不能正确连接数据库服务器,请检查你的连接字符串,或者将连接字符串写入文件查看。不好意思,我不知道如何对这种安装部署程序进行debug,sorry咯!
 
读取SQL文件的方法:
#region GetSql 从文件中读取SQL,在读取包含SQL脚本的文件时需要用到,参考自MSDN
private string GetSql(string Name)
{
    try
    {
        Assembly Asm = Assembly.GetExecutingAssembly();
        Stream strm = Asm.GetManifestResourceStream(Asm.GetName().Name + "." + Name);
        StreamReader reader = new StreamReader(strm);
        return reader.ReadToEnd();
    }
    catch (Exception getException)
    {
        throw new ApplicationException(getException.Message);
    }
}
#endregion

可以将此需要执行的SQL脚本放在此文本中
 
执行SQL语句的方法:
#region ExecuteSql 执行SQL语句,参考自MSDN
private void ExecuteSql(string DataBaseName, string sqlstring)
{
    Command = new System.Data.SqlClient.SqlCommand(sqlstring, sqlConn);
    if (ConnectDatabase())
    {
        try
        {
            Command.Connection.ChangeDatabase(DataBaseName);
            Command.ExecuteNonQuery();
        }
        finally
        {
            Command.Connection.Close();
        }
    }
}
#endregion

创建数据库及数据库表:
#region CreateDBAndTable 创建数据库及数据库表,参考自MSDN
protected bool CreateDBAndTable(string DBName)
{
    
    bool Restult = false;
    try
    {
        ExecuteSql("master", "USE MASTER IF EXISTS (SELECT NAME FROM SYSDATABASES WHERE NAME='" + DBName + "') DROP DATABASE " + DBName);
        ExecuteSql("master", "CREATE DATABASE " + DBName);
        ExecuteSql(DBName, GetSql("DBSQL.txt"));
        
        Restult = true;

    }
    Catch
    {
    }
    return Restult;
}
#endregion

相关的教程: VS2005 部署 安装 网站
收藏此教程

当前平均分: -1.8(8 次打分)

-5-4-3-2-1012345
评论主题
您的大名
您的评论
验证码 点击换一个验证码
知识库搜索: