/// <summary> /// 加载sqlite表结构 /// </summary> /// <param name="hash"></param> public void sqliteLoad(string hash, string table) { Data.pDataManageClass pData = new Data.pDataManageClass(); Dictionary <string, string> d = pData.getDataBaseHash(hash); if (d.Count <= 0) { return; } lib.pSqlite sqlite = new lib.pSqlite(d["path"]); showDataGridViewDictionary(sqlite.getTableInfo(table), Data.DataBaseType.Sqlite); }
/// <summary> /// 获取表 /// </summary> /// <returns></returns> public Dictionary <int, object> getSqliteTable(string path) { Dictionary <int, object> list = new Dictionary <int, object> { }; lib.pSqlite p = new lib.pSqlite(path); DataTable data = p.getTable(); p.close(); for (int i = 0; i < data.Rows.Count; i++) { Dictionary <string, string> d = new Dictionary <string, string> { }; for (int j = 0; j < data.Columns.Count; j++) { d.Add(data.Columns[j].ToString(), data.Rows[i][j].ToString()); } list.Add(i, d); } return(list); }
/// <summary> /// 添加数据库 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void skinButton_add_Click(object sender, EventArgs e) { string name = skinTextBox_name.Text; string path = skinTextBox_path.Text; if (name == "") { MessageBox.Show("数据名称不能为空!"); return; } if (path == "") { MessageBox.Show("数据库地址不能为空!"); return; } if (!File.Exists(path)) { MessageBox.Show("数据库地址不正确!"); return; } else { lib.pSqlite sql = new lib.pSqlite(path); if (sql.conn == null) { MessageBox.Show("无法打开数据库", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } Data.pDataManageClass data = new pDataManageClass(); if (data.addSqliteDataBase(name, path)) { tv.Nodes.Add(data.hash, DataBaseType.Sqlite + " : " + name); this.Close(); } else { MessageBox.Show("添加失败"); } }
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; }