新建项目,写这个类,最后在安装项目里,开始安装时执行这个项目的输出!
using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;
using System.Reflection;
using System.IO;
using System.Text;namespace DBCustomAction
{
/// <summary>
/// DBCustomAction 的摘要说明。
/// </summary>
[RunInstaller(true)]
public class DBCustomAction : System.Configuration.Install.Installer
{
private System.Data.SqlClient.SqlConnection sqlConnection1;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null; public DBCustomAction()
{
// 该调用是设计器所必需的。
InitializeComponent(); // TODO: 在 InitializeComponent 调用后添加任何初始化
} /// <summary> 
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
private  string GetSql() 


StringBuilder myBuilder=new StringBuilder();
myBuilder.Append("if exists (select * from sysobjects where id = object_id(N'[dbo].[成员表]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)");
            myBuilder.Append("drop table [dbo].[成员表]; ");
myBuilder.Append(@" CREATE TABLE [成员表] ( [Name] [char] (30) NOT NULL ,  [Rsvp] [int] NULL , [Requests] [nvarchar] (4000) NULL )
ALTER TABLE [成员表] WITH NOCHECK ADD CONSTRAINT [PK_MK_Employees] PRIMARY KEY  NONCLUSTERED ( [Name] );");

myBuilder.Append("INSERT [成员表] ( [Name] , [Rsvp] , [Requests] ) VALUES ( '31' , 11 , '12221' );");
return myBuilder.ToString();


 private string ReturnMasterSql()
{

  StringBuilder myBuilder=new StringBuilder();
 myBuilder.Append("if exists(select * from sysdatabases where [name] like 'friend') drop database friend ");
 myBuilder.Append("CREATE DATABASE friend");     return myBuilder.ToString();
           
}
private void ExecuteSql(string DataBaseName,string Sql) 

System.Data.SqlClient.SqlCommand Command = new System.Data.SqlClient.SqlCommand(Sql,sqlConnection1);  Command.Connection.Open(); 
Command.Connection.ChangeDatabase(DataBaseName); 
 
Command.ExecuteNonQuery(); 
 
Command.Connection.Close(); 
 

protected void AddDBTable(string strDBName) 


ExecuteSql("master",ReturnMasterSql()); 
    ExecuteSql(strDBName,GetSql()); 
 
}  public override void Install(System.Collections.IDictionary stateSaver) 

base.Install(stateSaver); 
AddDBTable(this.Context.Parameters["dbname"]); 
}  #region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.sqlConnection1 = new System.Data.SqlClient.SqlConnection();
// 
// sqlConnection1
// 
this.sqlConnection1.ConnectionString = "workstation id=黄海;packet size=4096;user id=sa;data source=黄海;persist security inf" +
"o=True;initial catalog=master;password=mdcija"; }
#endregion
}
}