public void GetTables() { try { string BaseDirectoryPath = AppDomain.CurrentDomain.BaseDirectory; string path = BaseDirectoryPath + "plugs\\BackUpTables.json"; string jsonData = File.ReadAllText(path); BackUpConfig = JsonConvert.DeserializeObject <BackUpConfig>(jsonData); TaskBackUpPath = BackUpConfig.SavePath;//文件保存路径 EnvironmentInfo.TaskBackUpPath = BackUpConfig.SavePath; if (!Directory.Exists(TaskBackUpPath)) { Directory.CreateDirectory(TaskBackUpPath); } //string cmd = "select @@basedir as mysqlpath from dual"; //DataTable dt = MySqlHelper.ExecuteDataset(EnvironmentInfo.ConnectionString, cmd).Tables[0]; //MySqlBinPath = dt.Rows[0][0].ToString() + "\\bin";//获取mysql的bin路径 MySqlBinPath = BaseDirectoryPath;//如果不是在服务器上,那么可能无法获取到mysqldump文件 string sql = $"select table_name from information_schema.`TABLES` where TABLE_SCHEMA='{EnvironmentInfo.DbConnEntity.DbName}';"; DataTable dt = MySqlHelper.ExecuteDataset(EnvironmentInfo.ConnectionString, sql).Tables[0];//获取所有的表 foreach (DataRow dr in dt.Rows) { BackUpTable backUpTable = new BackUpTable() { TableName = dr["table_name"].ToString(), IsChecked = false }; BackUpConfig.Tables.ForEach((x) => { if (x.TableName == dr["table_name"].ToString()) { backUpTable.IsChecked = true; } }); Tables.Add(backUpTable); } } catch (Exception ex) { ShowMessage(ex.ToString()); } }
/// <summary> /// 获取指定库中的表,设置左侧表集合 /// </summary> /// <param name="dbName">数据库名</param> public void SetTables(string dbName) { if (dbName.IsNullOrEmpty()) { Notice.Show("未配置备份数据库,请确认!", "通知", 3, MessageBoxIcon.Warning); return; } var tablesConfig = BackUpConfig.TablesConfig.FirstOrDefault(x => x.DbName == dbName); if (tablesConfig == null) { tablesConfig = new TablesConfig { DbName = dbName, Tables = new List <Table>(), IgnoreTables = new List <Table>(), DefaultIgnoreTables = new List <Table>() }; } AddArchiveTable(tablesConfig); Tables.Clear(); var sql = $"select table_name from information_schema.`TABLES` where TABLE_SCHEMA='{dbName}';"; var dt = MySqlHelper.ExecuteDataset(EnvironmentInfo.ConnectionString, sql).Tables[0];//获取所有的表 foreach (DataRow dr in dt.Rows) { BackUpTable backUpTable = new BackUpTable() { TableName = dr["table_name"].ToString(), IsChecked = false }; tablesConfig.IgnoreTables.ForEach((x) => { if (x.TableName == dr["table_name"].ToString()) { backUpTable.IsChecked = true; } }); Tables.Add(backUpTable); } }