Exemplo n.º 1
0
        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);
            }
        }