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))); } }