#regionGetデータベーステーブル情報リスト /// <summary> /// データベーステーブル情報リストを取得 /// </ summary> /// <param name = "input"> </ param> /// <returns> < / returns> public Task <List <DetailMessageInfoDto >> GetTableList(string input) { using(MySqlConnection conn = GetConnection()) { List <DetailMessageInfoDto> dic = new List <DetailMessageInfoDto> (); MySqlCommand cmd = conn.CreateCommand(); if(文字列.IsNullOrEmpty(input)) { cmd.CommandText = " select table_name from information_schema.tables where table_schema = ' " + dataName + " ' and table_name <> '__ efmigrationshistory' " ; } else { cmd.CommandText = string .Format(" select table_name from information_schema.tables where table_schema = ' " + dataName + " ' and table_name like '%{0}%' " 、input); (MySqlDataReaderリーダー= cmd.ExecuteReader()) { while (reader.Read()) { string table = reader.GetString(" table_name " ); DetailMessageInfoDto model = new DetailMessageInfoDto(){TableName = table}; dic.Add(モデル); } } conn.Close(); Task.FromResult(dic);を返します。 } } #endregion
#regionテーブル名に基づいてデータベーステーブルフィールド情報を 取得/// <summary> /// テーブル名に基づいてデータベーステーブルフィールド情報を取得 /// </ summary> /// <param name = "table"> </ param> / // <returns> </ returns> public Task <List <MyTable >> GetFieldList(string table) { using(MySqlConnection conn = GetConnection()) { Dictionary < string、MyTable> dic = new Dictionary < string、MyTable> () ; MySqlCommand cmd = conn.CreateCommand(); cmd.CommandText = string .Format(" information_schema.columnsからtable_name、column_name、data_type、column_commentを選択しますwhere where table_schema = ' " + dataName + " ' and table_name = '{0}' " 、table); using(MySqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { Columns columns = new Columns(); string column = reader.GetString(" column_name " ); 文字列型= reader.GetString(" data_type " ); string comment = reader.GetString(" column_comment " ); columns.ColumnName = column; columns.TypeName = types; columns.comment = コメント; if (dic.ContainsKey(table)) { dic [table] .ColumnList.Add(columns); } 他の { MyTable t= new MyTable(); t.Table = table; t.ColumnList.Add(columns); dic.Add(t.Table、t); } } } conn.Close(); return Task.FromResult(dic.Values.ToList()); } } #endregion public MySqlConnection GetConnection() { MySqlConnection conn = new MySqlConnection(ConfigurationManager.conns); conn.Open(); connを返します。 }
パブリック クラスMyTable { public string Table { get ; セット; } public List <Columns> ColumnList { get ; セット ; } = 新しいリスト<列> (); } public class Columns { public string ColumnName { get ; セット; } public string TypeName { get ; セット; } 公開 文字列コメント{ get ;セット; } }
パブリック クラスDetailMessageInfoDto { /// <要約> /// 描述 /// </要約> 公共の 文字列のテーブル名{ 取得します。セット; } }