/// <summary> /// 添加一个数据库 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void skinButton_add_Click(object sender, EventArgs e) { string databaseName = textBox_name.Text; string ip = textBox_ip.Text; string port = textBox_port.Text; string username = textBox_username.Text; string password = textBox_password.Text; string encoding = textBox_encoding.Text; if (databaseName.Trim() == "") { MessageBox.Show("数据库名称不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } lib.pMysql mysql = new lib.pMysql(ip, port, username, password, ""); if (!mysql.isConnOpen()) { MessageBox.Show("MySQL无法打开!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } pDataManageClass p = new pDataManageClass(); if (!p.addMysqlDataBase(databaseName, ip, port, username, password, encoding)) { MessageBox.Show("添加出错!" + p.error, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } this.Close(); }
/// <summary> /// 加载mysql表结构 /// </summary> /// <param name="hash"></param> /// <param name="database"></param> /// <param name="table"></param> public void mysqlLoad(string hash, string database, string table) { Data.pDataManageClass pData = new Data.pDataManageClass(); Dictionary <string, string> d = pData.getDataBaseHash(hash); lib.pMysql mysql = new lib.pMysql(d["ip"], d["port"], d["username"], d["password"], database); showDataGridViewDictionary(mysql.getTableInfo(table), Data.DataBaseType.Mysql); }
/// <summary> /// 创建数据库 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void skinButton_create_Click(object sender, EventArgs e) { TreeView tv = pDataManage.f.getTreeView(); string name = textBox_name.Text; string encoding = textBox_encoding.Text; if (name == "") { MessageBox.Show("数据库名称不能为空!", "提示"); return; } Data.pDataManageClass p = new pDataManageClass(); Dictionary <string, string> database = p.getDataBaseHash(this.hash); if (database.Count <= 0) { MessageBox.Show("找不到相关配置!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } lib.pMysql mysql = new lib.pMysql(database["ip"], database["port"], database["username"], database["password"], "", encoding); //CREATE DATABASE IF NOT EXISTS yourdbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci; string sql = string.Format("CREATE DATABASE IF NOT EXISTS {0} DEFAULT CHARSET {1} COLLATE {2}", name, encoding, encoding + "_general_ci"); if (mysql.executeNonQuery(sql) > 0) { tv.BeginInvoke(new Action(() => { TreeNode tn = pForm1TreeView.FindNodeByName(tv.Nodes, this.hash); TreeNode pid = tn.Nodes.Add(name); pid.ImageIndex = 2; pid.SelectedImageIndex = 2; })); this.Close(); } else { MessageBox.Show("创建失败!\r\n" + mysql.error, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// 自定义sql运行 button按钮 /// </summary> /// <param name="obj1"></param> /// <param name="obj2"></param> public void getRunSql(object obj1, object obj2) { try { if (obj1 == null) { return; } SkinButton sb = (SkinButton)obj1; string name = sb.Name; string rand = name.Replace("sqlrun", ""); Models.RunSqlForm rsf = RunSqlList[rand]; string text = rsf.fctb.Text; if (text == "") { return; } if (rsf.selectHash == null) { return; } string hash = rsf.selectHash; string[] array = hash.Split('|'); if (array.Length <= 1) //主要数据库 { string databaseHash = array[0]; //数据库hash Data.pDataManageClass p = new Data.pDataManageClass(); Dictionary <string, string> database = p.getDataBaseHash(databaseHash); if (database["type"] == Data.DataBaseType.Mysql.ToString()) { lib.pMysql mysql = new lib.pMysql(database["ip"], database["port"], database["username"], database["password"], ""); Dictionary <int, object> List = mysql.getRows(text); if (mysql.error.Length <= 0) { tabPageDataGridViewShow(rsf.stp, List, rand);//结果显示 } else { tabPageErrorShow(rsf.stp, mysql.error, rand);//错误显示 } } } if (array.Length >= 4) //表 { string type = array[2]; //获取类型 string databaseHash = array[0]; //数据库hash string table = array[3]; //数据库table if (type == Data.DataBaseType.Mysql.ToString()) { Data.pDataManageClass p = new Data.pDataManageClass(); Dictionary <string, string> database = p.getDataBaseHash(databaseHash); lib.pMysql mysql = new lib.pMysql(database["ip"], database["port"], database["username"], database["password"], table); Dictionary <int, object> List = mysql.getRows(text); if (mysql.error.Length <= 0) { tabPageDataGridViewShow(rsf.stp, List, rand);//结果显示 } else { tabPageErrorShow(rsf.stp, mysql.error, rand);//错误显示 } } } } catch (Exception ex) { pLogs.logs(ex.ToString()); } //string name = obj1; }
/// <summary> /// 输出mysql数据库的树 /// </summary> /// <param name="tv"></param> /// <param name="hash"></param> /// <param name="database"></param> public void showMysqlTreeViewTableList(TreeView tv, string hash, Dictionary <string, string> database, lib.pMysql mysql) { Dictionary <int, object> list = mysql.getDataBaseList(); if (list.Count <= 0) { return; } tv.Invoke(new Action(() => { TreeNode tn = tv.SelectedNode; for (int i = 0; i < list.Count; i++) { Dictionary <string, string> d = new Dictionary <string, string> { }; d = (Dictionary <string, string>)list[i]; string pidHash = hash + "|mysql_database|" + Data.DataBaseType.Mysql.ToString() + "|" + d["Database"]; TreeNode pidTn = pForm1TreeView.FindNodeByName(tn.Nodes, pidHash); if (pidTn != null) { return; } TreeNode show = tn.Nodes.Add(pidHash, d["Database"]); show.ImageIndex = 2; show.SelectedImageIndex = 2; } })); }
public void treeView_database_DoubleClickFun() { this.Cursor = Cursors.WaitCursor; try { Data.pDataManageClass p = new Data.pDataManageClass(); TreeView tv = treeView_database; this.treeviewSelectHash = ""; if (tv.SelectedNode == null) { this.Cursor = Cursors.Default; return; } string hash = tv.SelectedNode.Name; this.treeviewSelectHash = hash; Dictionary <string, string> database = p.getDataBaseHash(hash); if (database.Count > 0) //是数据库 { if (database["type"] == Data.DataBaseType.Sqlite.ToString()) //sqlite { if (!File.Exists(database["path"])) { MessageBox.Show("数据库不存在!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Cursor = Cursors.Default; return; } showSqliteTreeViewTableList(tv, hash, database); return; } if (database["type"] == Data.DataBaseType.Mysql.ToString())//mysql { lib.pMysql mysql = new lib.pMysql(database["ip"], database["port"], database["username"], database["password"], ""); if (!mysql.isConnOpen()) { MessageBox.Show("无法打开数据库!" + mysql.error, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Cursor = Cursors.Default; return; } showMysqlTreeViewTableList(tv, hash, database, mysql); this.Cursor = Cursors.Default; return; } } string[] array = hash.Split('|'); if (array.Length < 2) { this.Cursor = Cursors.Default; return; } if (array[1] == "table")//打开表 { Dictionary <string, string> list = p.getDataBaseHash(array[0]); if (list.Count <= 0) { this.Cursor = Cursors.Default; return; } if (list["type"] == Data.DataBaseType.Sqlite.ToString())//sqlite { lib.pSqlite sqlite = new lib.pSqlite(list["path"]); Dictionary <int, object> tableList = sqlite.getTableListData(array[3]); showDataViewTableListData(tableList); } } if (array[1] == "mysql_database")//打开mysql数据库显示表 { database = p.getDataBaseHash(array[0]); string databaseName = array[3];//数据库 lib.pMysql mysql = new lib.pMysql(database["ip"], database["port"], database["username"], database["password"], databaseName); showMysqlTableTreeViewTableList(treeView_database, array[0], database, mysql, databaseName); mysql.close(); } if (array[1] == "mysql_table")//打开mysql表 { database = p.getDataBaseHash(array[0]); string databaseName = array[3]; //数据库 string table = array[4]; //数据库 lib.pMysql mysql = new lib.pMysql(database["ip"], database["port"], database["username"], database["password"], databaseName); if (!mysql.isConnOpen()) { MessageBox.Show("操作不正常"); this.Cursor = Cursors.Default; return; } Dictionary <int, object> tableList = mysql.getTableListData(table); if (tableList.Count <= 0)//为空情况下默认输出一行 { lib.pMysql mysqlInfo = new lib.pMysql(database["ip"], database["port"], database["username"], database["password"], databaseName); Dictionary <int, object> tableListInfo = mysqlInfo.getTableInfo(table); Dictionary <string, string> add = new Dictionary <string, string> { }; for (int i = 0; i < tableListInfo.Count; i++) { Dictionary <string, string> temp = (Dictionary <string, string>)tableListInfo[i]; add.Add(temp["Field"], ""); } tableList.Add(0, add); } showDataViewTableListData(tableList); skinTabControl1.SelectedTab = skinTabPage1; } } catch (Exception ex) { pLogs.logs(ex.ToString()); this.Cursor = Cursors.Default; } this.Cursor = Cursors.Default; }