INFORMATION_SCHEMA MySQLデータベースCOLUMNSテーブル内のすべてのテーブルのすべての列に格納されています。
MySql.Data.MySqlClientを使用しました。 システムを使用しました。 System.Collections.Genericを使用しました。 System.Linqのを使用しました。 System.Textのを使用しました。 System.Threading.Tasksを使用しました。 名前空間ConsoleApp1 { クラスプログラム { 静的な無効メイン(文字列[] args) { 一覧<MyTableという>リスト= GetTableList(); クエリー(リスト、 "1111aaaa"); Console.WriteLineを( "オーバー"); Console.ReadLine(); } 静的リスト<たMyTable> GetTableList() { 使用(MySqlConnectionにCONN =のgetConnection()) { 辞書<文字列、MyTableという> DIC =新しい辞書<文字列、MyTableという>(); たMySqlCommand CMD = conn.CreateCommand()。 cmd.CommandText = "SELECT TABLE_NAME、COLUMN_NAME information_schema.columnsからTABLE_SCHEMA = 'lpet6plusdb';"; 使用(MySqlDataReaderリーダ= cmd.ExecuteReader()) { 一方(reader.Read()) { 文字列テーブル= reader.GetString( "テーブル名"); ストリング列= reader.GetString( "COLUMN_NAME")。 (dic.ContainsKey(表))もし { DIC [表] .ColumnList.Add(列); } 他 { たMyTable T =新しいMyTableという()。 t.Table =表。 t.ColumnList.Add(列); dic.Add(t.Table、T)。 } } } dic.Values.ToList()を返します。 } } 静的ボイドクエリ(リスト<たMyTable>リスト、文字列str) { 使用(MySqlConnectionにCONN =のgetConnection()) { たMySqlCommand CMD = conn.CreateCommand()。 foreachの(リスト内のMyTableというテーブル) { foreachの(table.ColumnListの文字列カラム) { {0}ここで、 '{1}'のように'%{2}%'からcmd.CommandText = String.Formatの( "SELECT COUNT(*) 」table.Table、カラム、STR)。 オブジェクトOBJ = cmd.ExecuteScalar()。 (Convert.ToInt32(OBJ)> 0)であれば { Console.WriteLineを(String.Formatの( "テーブル名:{0}、ColumnNameの:{1}"、table.Table、カラム))。 } } } } } 静的MySqlConnectionにのgetConnection() { MySqlConnectionにCONN =新しいMySqlConnectionに( "サーバ=ローカルホスト、ポート= 3306;ユーザID =ユーザID、パスワード=通過;データベース= MYDB;プーリング= TRUE;のConnectionTimeout = 1800")。 conn.Open(); CONN返します。 } } publicクラスMyTableという { パブリック文字列表{得ます。セット; } 公共の一覧<文字列> columnlistの{取得します。セット; })(新しいリスト<string>を=。 } }