using DevExpress.XtraEditors; using Lskj.Control; using Lskj.Core; using Lskj.Data; using Lskj.Util; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms; namespace Lskj.GetSecretKey { public partial class FrmMain : BaseForm { #region 公有参数 #endregion public FrmMain() { InitializeComponent(); this.txtServerName.Focus(); this.txtDays.KeyDown += new KeyEventHandler(OnKeysDown); this.txtDBName.KeyDown += new KeyEventHandler(OnKeysDown); this.txtServerName.KeyDown += new KeyEventHandler(OnKeysDown); this.LoginName.KeyDown += new KeyEventHandler(OnKeysDown); this.LoginPwd.KeyDown += new KeyEventHandler(OnKeysDown); this.setPanel.Click += new EventHandler(OnSetPanel_Click); } private void OnSetPanel_Click(object sender, EventArgs e) { if (ConnectServer()) { FrmPsdChange form = new FrmPsdChange(); form.passWord = form.oldPassWord = this.LoginPwd.Text; form.userName = form.oldUserName = this.LoginName.Text; DialogResult result = form.ShowDialog(); if (result == DialogResult.OK) { this.LoginPwd.Text = form.passWord; this.LoginName.Text = form.userName; } form.Dispose(); } } private void btnConnect_Click(object sender, EventArgs e) { ConnectServer(); } private void btnSave_Click(object sender, EventArgs e) { ConnectServer(true); } /// /// 说明:连接服务器 /// 创建人:龚宇超 /// 创建日期:2017-08-09 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// if set to true [is save]. private bool ConnectServer(bool isSave = false) { string serverName = this.txtServerName.Text.Trim(); string dbName = this.txtDBName.Text.Trim(); if (string.IsNullOrWhiteSpace(serverName)) { MessageUtil.Show(ResourceKeys.ServerNameIsNull); return false; } if (string.IsNullOrWhiteSpace(dbName)) { MessageUtil.Show(ResourceKeys.ServerDBIsNull); return false; } if (string.IsNullOrWhiteSpace(this.LoginName.Text.Trim())) { MessageUtil.Show("数据库登录名不能为空!"); return false; } if (string.IsNullOrWhiteSpace(this.LoginPwd.Text.Trim())) { MessageUtil.Show("数据库登录密码不能为空!"); return false; } DBConfig.Instance.ServerName = serverName; DBConfig.Instance.DataBase = dbName; // 测试数据库连接 try { bool isConnection = false; if (!isSave) { string Connection = "Server={0};Database={1};Persist Security Info=True;User ID=" + LoginName.Text + ";Password=" + LoginPwd.Text + ";Connection Timeout=5;MultipleActiveResultSets=true"; Connection = AESUtil.Encrypt(Connection); SqlHelper._connection = null; isConnection = DBConfig.Instance.CreateConnection(Connection); if (!isConnection) { MessageUtil.Show(ResourceKeys.ConnectFault); return false; } } if (isSave) { //DBConfig.Instance.WriteConfig(); string args = AESUtil.Encrypt(txtServerName.Text + "^" + txtDBName.Text + "^" + LoginName.Text + "^" + LoginPwd.Text + "^" + (string.IsNullOrEmpty(txtDays.Text) ? "0" : txtDays.Text)); string file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SystemResources.txt"); //创建文件 using (FileStream fs = new FileStream("SystemResources.txt", FileMode.Create)) { using (StreamWriter sw = new StreamWriter(fs, Encoding.Default)) { sw.WriteLine(args); } } this.Close(); return true; } else { MessageUtil.Show(ResourceKeys.ConnectSuccess); return true; } } catch (Exception) { MessageUtil.Show(ResourceKeys.ConnectFault); return false; } } private void FrmMain_Load(object sender, EventArgs e) { string file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SystemResources.txt"); if (File.Exists(file)) { string args = AESUtil.Decrypt(File.ReadAllText(file)); string[] controlAfgs = args.Split('^'); if (controlAfgs != null && controlAfgs.Length == 5) { txtServerName.Text = controlAfgs[0]; txtDBName.Text = controlAfgs[1]; LoginName.Text = controlAfgs[2]; LoginPwd.Text = controlAfgs[3]; txtDays.Text = controlAfgs[4]; } } } private void btnExit_Click(object sender, EventArgs e) { this.Close(); } private void OnKeysDown(object sender, KeyEventArgs e) { TextEdit txtEdit = (TextEdit)sender; if (e.KeyCode == Keys.Enter) { if (txtEdit.Name.Equals("LoginPwd")) { this.OnSetPanel_Click(sender, e); } else { SendKeys.Send("{Tab}"); } } } } }