添加新项中添加安装程序类 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 调用后添加任何初始化 } Component Designer generated code#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 { } } }}