MySQLデータベースのテーブル情報を取得する

 

 

 

 


#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 
    { 
        ///  <要約> 
        /// 描述
         ///  </要約> 
        公共の 文字列のテーブル名{ 取得しますセット; } 
    }
 
 

 

 

 

おすすめ

転載: www.cnblogs.com/cyqdeshenluo/p/12712064.html
おすすめ