安装程序自动安装数据库

添加新项中添加安装程序类

using  System;
using  System.Collections;
using  System.ComponentModel;
using  System.Configuration.Install;
using  System.IO;
using  System.Data.SqlClient;
using  System.Reflection;


namespace  DBCustomAction
{
    
/// <summary>
    
/// DBCustomAction 的摘要说明。
    
/// </summary>

    [RunInstaller(true)]
    
public class DBCustomAction : System.Configuration.Install.Installer
    
{
        
/// <summary>
        
/// 必需的设计器变量。
        
/// </summary>

        private System.ComponentModel.Container components = null;
        
private string strPass = "";

        
public DBCustomAction()
        
{
            
// 该调用是设计器所必需的。
            InitializeComponent();

            
// TODO: 在 InitComponent 调用后添加任何初始化
        }


        
#region Component Designer generated code
        
/// <summary>
        
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
        
/// 此方法的内容。
        
/// </summary>

        private void InitializeComponent()
        
{

        }

        
#endregion


        
public override void Install(System.Collections.IDictionary stateSaver)
        
{
        
            
//入口
            strPass = this.Context.Parameters["strPass"];
            AddDBTable(
"RequestSys");//RequestSys为数据库名称

        }

        
private string  GetSql(string strName)
        
{
            
try
            
{
                
//' Get the current assembly.
                Assembly Asm = Assembly.GetExecutingAssembly();
                
// Resources are named using a fully qualified name
                
                Stream strm  
= Asm.GetManifestResourceStream(Asm.GetName().Name + "." + strName);
                
                
//Read the contents of the embedded file.
                StreamReader reader= new StreamReader(strm);//,System.Text.Encoding.Unicode);
            
                
                
return reader.ReadToEnd();
            }

            
catch
            
{
                
return null;
            }

                                                                                                                                      
        }

        
private void ExecuteSql(string DatabaseName , string Sql)
        
{

            SqlConnection sqlConnection1 
= new SqlConnection("user id=sa;password="+strPass+";database=master;server=(local)") ;
            SqlCommand Command  
= new SqlCommand(Sql, sqlConnection1);
            Command.Connection.Open();
            Command.Connection.ChangeDatabase(DatabaseName);
            
            
try
            
{
                Command.ExecuteNonQuery();
            }


            
finally
            
{
                
// Finally, blocks are a great way to ensure that the connection 
                Command.Connection.Close();
            }

        
        }

        
protected void  AddDBTable(string strDBName )
        
{
            
try
            
{
                
//Create the database.
                ExecuteSql("master""CREATE DATABASE " + strDBName);
                
// Create the tables.
                ExecuteSql(strDBName, GetSql("sql.txt"));
            }

            
catch
            
{
                
            }

        }

        

    }

}

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值