/// <summary> /// 测试连接 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { if (chbConnectString.Checked) { if (string.IsNullOrEmpty(txtConnectString.Text)) { MessageBox.Show("请填写连接字符串!"); return; } dbObject = new WEF.DbDAL.Oracle.DbObject(txtConnectString.Text); } else { if (string.IsNullOrEmpty(cbbService.Text)) { MessageBox.Show("请填写服务!"); return; } if (string.IsNullOrEmpty(txtUserName.Text)) { MessageBox.Show("请填写用户名!"); return; } dbObject = new WEF.DbDAL.Oracle.DbObject(false, cbbServer.Text, cbbService.Text, txtUserName.Text, txtPassword.Text); } try { using (OracleConnection connect = new OracleConnection(dbObject.DbConnectStr)) { connect.Open(); } MessageBox.Show("连接成功!"); isConnection = true; button2.Enabled = true; } catch (Exception ex) { MessageBox.Show("连接失败!\n\r" + ex.Message); isConnection = false; } }
public void RunSql() { var sql = AutoTextBox.TextBox.Text; stopwatch.Restart(); LoadForm.ShowLoading(this); Task.Factory.StartNew(() => { WEF.DbDAL.IDbObject dbObject = null; if (ConnectionModel.DbType.Equals(DatabaseType.SqlServer.ToString())) { dbObject = new WEF.DbDAL.SQL2000.DbObject(ConnectionModel.ConnectionString); } else if (ConnectionModel.DbType.Equals(DatabaseType.SqlServer9.ToString())) { dbObject = new WEF.DbDAL.SQL2005.DbObject(ConnectionModel.ConnectionString); } else if (ConnectionModel.DbType.Equals(DatabaseType.MsAccess.ToString())) { dbObject = new WEF.DbDAL.OleDb.DbObject(ConnectionModel.ConnectionString); } else if (ConnectionModel.DbType.Equals(DatabaseType.Oracle.ToString())) { dbObject = new WEF.DbDAL.Oracle.DbObject(ConnectionModel.ConnectionString); } else if (ConnectionModel.DbType.Equals(DatabaseType.Sqlite3.ToString())) { dbObject = new WEF.DbDAL.SQLite.DbObject(ConnectionModel.ConnectionString); } else if (ConnectionModel.DbType.Equals(DatabaseType.MySql.ToString())) { dbObject = new WEF.DbDAL.MySql.DbObject(ConnectionModel.ConnectionString); } else if (ConnectionModel.DbType.Equals(DatabaseType.MariaDB.ToString())) { dbObject = new WEF.DbDAL.MySql.DbObject(ConnectionModel.ConnectionString); } else if (ConnectionModel.DbType.Equals(DatabaseType.PostgreSQL.ToString())) { dbObject = new WEF.DbDAL.PostgreSQL.DbObject(ConnectionModel.ConnectionString); } else { LoadForm.HideLoading(1); this.Invoke(new Action(() => { MessageBox.Show(this, "不支持的数据库类型!"); })); return; } if (string.IsNullOrEmpty(sql)) { LoadForm.HideLoading(1); this.Invoke(new Action(() => { MessageBox.Show(this, "sql内容不能为空!"); })); return; } this.Invoke(new Action(() => { if (!string.IsNullOrWhiteSpace(AutoTextBox.TextBox.SelectedText)) { sql = AutoTextBox.TextBox.SelectedText.Trim(); if (string.IsNullOrEmpty(sql)) { LoadForm.HideLoading(1); MessageBox.Show(this, "sql内容不能为空!"); return; } } dataGridView1.DataSource = null; })); if (sql.IndexOf("select", StringComparison.InvariantCultureIgnoreCase) >= 0) { try { int max = 50; var ds = dbObject.Query(ConnectionModel.Database, sql); if (ds != null && ds.Tables != null) { var dt = ds.Tables[0]; if (dt != null && dt.Rows.Count > 0) { var count = dt.Rows.Count; if (count > max) { for (int i = max; i < count; i++) { dt.Rows.RemoveAt(max); } } var dList = new List <int>(); for (int i = 0; i < dt.Columns.Count; i++) { if (dt.Columns[i].DataType == typeof(DateTime)) { dList.Add(i); } } dataGridView1.Invoke(new Action(() => { dataGridView1.DataSource = dt; if (dList.Any()) { foreach (var item in dList) { dataGridView1.Columns[item].DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss.fff"; } } lbl_execute.Text = $"当前显示{(max > count ? count : max)}行,影响数据行数:{count} 耗时:{stopwatch.Elapsed.TotalSeconds} 秒"; })); } } LoadForm.HideLoading(); } catch (Exception ex) { LoadForm.HideLoading(); this.Invoke(new Action(() => { MessageBox.Show(this, $"查询发生异常,ex:" + ex.Message); })); } } else { try { var count = dbObject.ExecuteSql(ConnectionModel.Database, sql); lbl_execute.Invoke(new Action(() => { lbl_execute.Text = $"影响数据行数:{count} 耗时:{stopwatch.Elapsed.TotalMilliseconds} 毫秒"; })); LoadForm.HideLoading(); } catch (Exception ex) { LoadForm.HideLoading(); this.Invoke(new Action(() => { MessageBox.Show(this, $"操作发生异常,ex:" + ex.Message); })); } } }); }
/// <summary> /// 连接 测试 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { if (checkBox1.Checked) { if (string.IsNullOrEmpty(textBox1.Text)) { MessageBox.Show("连接字符串不能为空!"); return; } LoadForm.ShowLoading(this); WEF.DbDAL.IDbObject dbObejct = null; try { dbObejct = new WEF.DbDAL.SQL2000.DbObject(textBox1.Text); } catch (Exception ex) { LoadForm.HideLoading(); MessageBox.Show($"连接测试失败:{ex.Message}"); } if (dbObejct == null) { return; } cbbDatabase.Enabled = false; Task.Factory.StartNew(() => { try { var DBNameTable = dbObejct.GetDBList(); this.Invoke(new Action(() => { cbbDatabase.Items.Clear(); cbbDatabase.Items.Add("全部"); foreach (DataRow dr in DBNameTable.Rows) { cbbDatabase.Items.Add(dr[0].ToString()); } cbbDatabase.Enabled = true; cbbDatabase.SelectedIndex = 0; LoadForm.HideLoading(); MessageBox.Show("连接成功!"); button2.Enabled = true; })); } catch (Exception ex) { LoadForm.HideLoading(); MessageBox.Show("连接失败!\n\r" + ex.Message); } }); } else { if (string.IsNullOrEmpty(cbbServer.Text)) { MessageBox.Show("服务器不能为空!"); return; } if (cbbShenFenRZ.SelectedIndex == 1 && string.IsNullOrEmpty(txtUserName.Text)) { MessageBox.Show("登陆名不能为空!"); return; } LoadForm.ShowLoading(this); WEF.DbDAL.IDbObject dbObejct = new WEF.DbDAL.SQL2000.DbObject(cbbShenFenRZ.SelectedIndex == 0, cbbServer.Text, txtUserName.Text, txtPassword.Text); cbbDatabase.Enabled = false; Task.Factory.StartNew(() => { try { var DBNameTable = dbObejct.GetDBList(); this.Invoke(new Action(() => { cbbDatabase.Items.Clear(); cbbDatabase.Items.Add("全部"); foreach (DataRow dr in DBNameTable.Rows) { cbbDatabase.Items.Add(dr[0].ToString()); } cbbDatabase.Enabled = true; cbbDatabase.SelectedIndex = 0; LoadForm.HideLoading(); MessageBox.Show("连接成功!"); button2.Enabled = true; })); } catch (Exception ex) { LoadForm.HideLoading(); MessageBox.Show("连接失败!\n\r" + ex.Message); } }); } }
/// <summary> /// 加载 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ContentForm_Load(object sender, EventArgs e) { LoadForm.ShowLoading(this); if (ConnectionModel != null) { this.DatabaseName = ConnectionModel.Database; this.TableName = ConnectionModel.TableName; this.IsView = ConnectionModel.IsView; } Task.Factory.StartNew(() => { WEF.DbDAL.IDbObject dbObject = null; if (ConnectionModel.DbType.Equals(DatabaseType.SqlServer.ToString())) { dbObject = new WEF.DbDAL.SQL2000.DbObject(ConnectionModel.ConnectionString); } else if (ConnectionModel.DbType.Equals(DatabaseType.SqlServer9.ToString())) { dbObject = new WEF.DbDAL.SQL2005.DbObject(ConnectionModel.ConnectionString); } else if (ConnectionModel.DbType.Equals(DatabaseType.MsAccess.ToString())) { dbObject = new WEF.DbDAL.OleDb.DbObject(ConnectionModel.ConnectionString); } else if (ConnectionModel.DbType.Equals(DatabaseType.Oracle.ToString())) { dbObject = new WEF.DbDAL.Oracle.DbObject(ConnectionModel.ConnectionString); } else if (ConnectionModel.DbType.Equals(DatabaseType.Sqlite3.ToString())) { dbObject = new WEF.DbDAL.SQLite.DbObject(ConnectionModel.ConnectionString); } else if (ConnectionModel.DbType.Equals(DatabaseType.MySql.ToString())) { dbObject = new WEF.DbDAL.MySql.DbObject(ConnectionModel.ConnectionString); } else if (ConnectionModel.DbType.Equals(DatabaseType.MongoDB.ToString())) { dbObject = new WEF.DbDAL.MySql.DbObject(ConnectionModel.ConnectionString); } else if (ConnectionModel.DbType.Equals(DatabaseType.PostgreSQL.ToString())) { dbObject = new WEF.DbDAL.PostgreSQL.DbObject(ConnectionModel.ConnectionString); } else { LoadForm.HideLoading(1); MessageBox.Show("未知数据库类型!"); return; } DataTable primarykeydt = dbObject.GetKeyName(DatabaseName, TableName); if (primarykeydt.Rows.Count == 0) { MessageBox.Show("当前表找不到任何主键,请选择上面的列表行来添加主键"); } this.Invoke(new Action(() => { cnnTxt.Text = ConnectionModel.ConnectionString; #region structure columnsdt = dbObject.GetColumnInfoList(DatabaseName, TableName); gridColumns.DataSource = columnsdt; #endregion cbPrimarykey.Items.Clear(); if (null != primarykeydt && primarykeydt.Rows.Count > 0) { foreach (DataRow dr in primarykeydt.Rows) { cbPrimarykey.Items.Add(dr["ColumnName"].ToString()); } cbPrimarykey.SelectedIndex = 0; } txtClassName.Text = TableName.Trim().Replace(' ', '_'); txtnamespace.Text = UtilsHelper.ReadNamespace(); })); LoadForm.HideLoading(1); }); }
/// <summary> /// 执行sql /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void autoTextBox1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e) { string sql = ((TextBox)sender).Text.Trim(); ShortcutKeyHelper.Run(sender, e, () => { stopwatch.Restart(); LoadForm.ShowLoading(this); Task.Factory.StartNew(() => { WEF.DbDAL.IDbObject dbObject = null; if (ConnectionModel.DbType.Equals(DatabaseType.SqlServer.ToString())) { dbObject = new WEF.DbDAL.SQL2000.DbObject(ConnectionModel.ConnectionString); } else if (ConnectionModel.DbType.Equals(DatabaseType.SqlServer9.ToString())) { dbObject = new WEF.DbDAL.SQL2005.DbObject(ConnectionModel.ConnectionString); } else if (ConnectionModel.DbType.Equals(DatabaseType.MsAccess.ToString())) { dbObject = new WEF.DbDAL.OleDb.DbObject(ConnectionModel.ConnectionString); } else if (ConnectionModel.DbType.Equals(DatabaseType.Oracle.ToString())) { dbObject = new WEF.DbDAL.Oracle.DbObject(ConnectionModel.ConnectionString); } else if (ConnectionModel.DbType.Equals(DatabaseType.Sqlite3.ToString())) { dbObject = new WEF.DbDAL.SQLite.DbObject(ConnectionModel.ConnectionString); } else if (ConnectionModel.DbType.Equals(DatabaseType.MySql.ToString())) { dbObject = new WEF.DbDAL.MySql.DbObject(ConnectionModel.ConnectionString); } else { LoadForm.HideLoading(1); MessageBox.Show("不支持的数据库类型!"); return; } if (string.IsNullOrEmpty(sql)) { MessageBox.Show("sql内容不能为空!"); return; } this.Invoke(new Action(() => { if (!string.IsNullOrWhiteSpace(((TextBox)sender).SelectedText)) { sql = ((TextBox)sender).SelectedText.Trim(); if (string.IsNullOrEmpty(sql)) { MessageBox.Show("sql内容不能为空!"); return; } } dataGridView1.DataSource = null; })); if (string.Compare(sql, "select", true) >= 0) { try { int max = 50; var dt = dbObject.GetTabData(ConnectionModel.Database, sql, max); if (dt != null && dt.Rows.Count > 0) { var count = dt.Rows.Count; if (count > max) { for (int i = max; i < count; i++) { dt.Rows.RemoveAt(max); } } var dList = new List <int>(); for (int i = 0; i < dt.Columns.Count; i++) { if (dt.Columns[i].DataType == typeof(DateTime)) { dList.Add(i); } } dataGridView1.Invoke(new Action(() => { dataGridView1.DataSource = dt; if (dList.Any()) { foreach (var item in dList) { dataGridView1.Columns[item].DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss.fff"; } } lbl_execute.Text = $"当前显示{(max > count ? count : max)}行,影响数据行数:{count} 耗时:{stopwatch.Elapsed.TotalSeconds} 秒"; })); } } catch (Exception ex) { this.Invoke(new Action(() => { MessageBox.Show(this, $"查询发生异常,ex:" + ex.Message); })); } } else { try { var count = dbObject.ExecuteSql(ConnectionModel.Database, sql); lbl_execute.Invoke(new Action(() => { lbl_execute.Text = $"影响数据行数:{count} 耗时:{stopwatch.Elapsed.TotalMilliseconds} 毫秒"; })); } catch (Exception ex) { this.Invoke(new Action(() => { MessageBox.Show(this, $"操作发生异常,ex:" + ex.Message); })); } } LoadForm.HideLoading(); }); }); ShortcutKeyHelper.AllSelect(sender, e); }