示例#1
0
        protected void ResetDBInfo_Click(object sender, EventArgs e)
        {
            #region 验证输入
            //验证密码长度
            if (AdminPasswordTextBox.Text.Length < 6)
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('系统管理员密码长度不能少于6位');</script>");
                return;
            }
            //验证数据库名为空
            if (DatabaseTextBox.Text.Length == 0 && DbTypeDropDownList.SelectedValue == "SqlServer")
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('数据库名不能为空');</script>");
                return;
            }

            //验证必须选择数据库类型
            if (DbTypeDropDownList.SelectedIndex == 0)
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('请选择数据库类型');</script>");
                return;
            }

            #endregion

            #region 写Site.config文件
            try
            {
                SiteConfigInfo __configinfo;
                //记录存储到SiteConfig.config
                try
                {
                    __configinfo = SiteConfigs.GetConfig();
                }
                catch
                {
                    __configinfo = new SiteConfigInfo();
                }
                __configinfo.AdministratorKey  = Encrypt(AdminPasswordTextBox.Text);
                __configinfo.IsPasswordHashed  = true;
                __configinfo.SiteName          = WebsiteNameTextBox.Text;
                __configinfo.AdministratorName = AdminNameTextBox.Text;
                SiteConfigs.Serialiaze(__configinfo, Server.MapPath("~/config/site.config"));
                Session["SystemAdminName"] = AdminNameTextBox.Text;
                Session["SystemAdminPws"]  = AdminPasswordTextBox.Text;
            }
            catch {; }
            #endregion

            string setupDbType = SelectDB = DbTypeDropDownList.SelectedValue;

            DatabaseInfo dbi = new DatabaseInfo();
            dbi.Server   = ServerTextBox.Text;
            dbi.Database = DatabaseTextBox.Text;
            dbi.User     = UserTextBox.Text;
            dbi.Password = PasswordTextBox.Text;
            dbi.DBFile   = DbFileNameTextBox.Text;

            BaseConfigInfo baseConfig = Installer.GenerateConnectionString(setupDbType, dbi);

            //验证链接

            if (!SaveDBConfig(baseConfig))
            {
                ResetDBInfo.Enabled = false;
                Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>if(confirm('无法把设置写入\"db.config\"文件, 系统将把文件内容显示出来, 您可以将内容保存为\"db.config\", 然后通过FTP软件上传到网站根目录下.. \\r\\n*注意: db.config位于网站Config目录。\\r\\n\\r\\n如果要继续运行安装, 请点击\"确定\"按钮. ')) {window.location.href='step4.aspx?isforceload=1';}else{window.location.href='step3.aspx';}</script>");
                return;
            }

            //下面数据库需要手工创建
            if (baseConfig.DBType == "Oracle" || baseConfig.DBType == "MySql")
            {
                CreateNewDBCheckBox.Checked = false;
            }

            if (CreateNewDBCheckBox.Checked)//创建数据库
            {
                Exception ex  = null;
                int       ret = Installer.CreateDatabase(baseConfig, out ex);
                if (ret == -1)
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('数据库已存在,请重新命名或去掉重新“创建新数据库”前面的勾,使用已有数据库。');</script>");
                    return;
                }
                else if (ret == 0)
                {
                    string exceptionMsgs = We7Helper.ConvertTextToHtml(ex.Message);
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('创建数据库发生错误。错误原因:" + exceptionMsgs + "');</script>");
                    return;
                }
            }

            string msg = "";
            if (!Installer.CheckConnection(baseConfig, out msg))
            {
                msg = We7Helper.ConvertTextToHtml(msg);
                Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('连接数据库失败,请检查您填写的数据库信息。" + msg + "');</script>");
                return;
            }
            else
            {
                Response.Redirect(Server.HtmlEncode(String.Format("step4.aspx?db={0}", setupDbType)));
            }
        }
示例#2
0
        protected void ResetDBInfo_Click(object sender, EventArgs e)
        {
            if (AdminPasswordTextBox.Text.Length < 6)
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('系统管理员密码不能少于6位!');</script>");
                return;
            }
            if (DatabaseTextBox.Text.Length == 0 && DBTypeDropDownList.SelectedValue == "SqlServer")
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>数据库名称不能为空!</script>");
                return;
            }
            if (DBTypeDropDownList.SelectedIndex == 0)
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('请选择数据库类型!');</script>");
                return;
            }

            try
            {
                SiteConfigInfo __configinfo;
                try
                {
                    __configinfo = SiteConfigs.GetConfig();
                }
                catch
                {
                    __configinfo = new SiteConfigInfo();
                }
                __configinfo.AdministratorKey  = Encrypt(AdminPasswordTextBox.Text);
                __configinfo.IsPasswordHashed  = true;
                __configinfo.SiteName          = WebsiteNameTextBox.Text;
                __configinfo.AdministratorName = AdminNameTextBox.Text;
                SiteConfigs.Serialize(__configinfo, Server.MapPath("~/Config/site.config"));
                Session["SystemAdminName"] = AdminNameTextBox.Text;
                Session["SystemAdminPwd"]  = AdminPasswordTextBox.Text;
            }
            catch
            { }

            string       setupDBType = SelectDB = DBTypeDropDownList.SelectedValue;
            DatabaseInfo dbi         = new DatabaseInfo();

            dbi.Server   = ServerTextBox.Text;
            dbi.Database = DatabaseTextBox.Text;
            dbi.User     = UserTextBox.Text;
            dbi.Password = PasswordTextBox.Text;
            dbi.DBFile   = DBFileNameTextBox.Text;

            BaseConfigInfo bci = Installer.GenerateConnectionString(setupDBType, dbi);

            if (!SaveDBConfig(bci))
            {
                ResetDBInfo.Enabled = false;
                Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>if(confirm('无法把设置写入\"db.config\"文件,系统将把文件内容显示出来,您可以将内容保存为\"db.config\",然后通过FTP软件上传到网站根目录下.. \\r\\n*注意:db.config位于网站Config目录下。\\r\\n\\r\\n如要继续运行安装,请按\"确定\"按钮.')){window.location.href='step4.aspx?isforceload=1';}else{window.location.href='step3.aspx';}</script>");
                return;
            }

            if (bci.DBType == "Oracle" || bci.DBType == "MySql")
            {
                CreateNewDBCheckBox.Checked = false;
            }

            if (CreateNewDBCheckBox.Checked)
            {
                Exception ex  = null;
                int       ret = Installer.CreateDatabase(bci, out ex);

                if (ret == -1)
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('数据库已经存在,请重新命名或去掉“创建新数据库”前的勾,使用已有数据库');</script>");
                    return;
                }
                if (ret == 0)
                {
                    string exceptionMsgs = We7Helper.ConvertTextToHtml(ex.Message);
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('数据库创建失败,错误原因:" + exceptionMsgs + "');</script>");
                    return;
                }
            }

            string msg = "";

            if (!Installer.CheckConnection(bci, out msg))
            {
                msg = We7Helper.ConvertTextToHtml(msg);
                Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('连接数据库失败,请检查您填写的数据库信息。" + msg + "');</script>");
                return;
            }
            else
            {
                Response.Redirect(Server.HtmlEncode(string.Format("step4.aspx?db={0}", setupDBType)), true);
            }
        }