public override void Install(IDictionary stateSaver) { base.Install(stateSaver); string databaseServer = Context.Parameters["server"].ToString(); string userName = Context.Parameters["user"].ToString(); string userPass = Context.Parameters["pwd"].ToString(); string targetdir = this.Context.Parameters["targetdir"].ToString(); conStr = GetLogin(databaseServer, userName, userPass, "master"); SqlConnection sqlCon = new SqlConnection(); try { sqlCon.ConnectionString = conStr; sqlCon.Open(); rijndael.GenKey(); rijndael.Encrypt(conStr); stateSaver.Add("key", rijndael.Key); stateSaver.Add("IV", rijndael.IV); stateSaver.Add("conStr", rijndael.Encrypted); //ExecuteSql(sqlCon, "InstallDatabase.txt"); //ExecuteSql(sqlCon, "InitializeData.txt"); CreateDatabaseForAttach(sqlCon, targetdir); if (sqlCon.State != ConnectionState.Closed) { sqlCon.Close(); } } catch (SqlException e) { MessageBox.Show("安装失败!\n数据库配置有误,请正确配置信息!\n" + e.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); if (sqlCon.State != ConnectionState.Closed) { sqlCon.Close(); } this.Rollback(stateSaver); } }