C# mysqlに接続してテーブル一覧を確認する

  • 作成日 2022.02.18
  • 更新日 2022.03.03
  • C#
C# mysqlに接続してテーブル一覧を確認する

C#で、mysqlに接続してテーブル一覧を確認するサンプルコードを記述してます。Visual Studioは、2022を使用してます。

環境

  • OS windows10 pro 64bit
  • Microsoft Visual Studio Community 2022

パッケージインストール

mysqlに接続するために、まずは「MySql.Data」をインストールします。
※ここでは、コンソールアプリでプロジェクトを作成してます。

ソリューションを右クリックして、「NuGetパッケージの管理」をクリックします。

「参照」タブをクリックして「mysql」と検索して「Mysql.Data」をインストールしておきます。

テーブル一覧を確認

以下のDB「foo」にあるテーブルの一覧を取得してみます。

「Program.cs」に、以下のコードを記述します。

using MySql.Data.MySqlClient;
using System;

namespace MysqlApp
{
    class Program
    {
        static void Main(string[] args)
        {
            // 接続文字列
            var connectionString =
               "Server=192.168.100.42;Port=3306;Uid=testuser;Pwd=password;Database=foo";

            // クエリ
            var sql = "SHOW TABLES FROM foo";

            // インスタンスを生成
            using (var connection = new MySqlConnection(connectionString))

            using (var command = new MySqlCommand(sql, connection))
            {               

                try
                {
                    // 接続
                    connection.Open();
                                          
                    command.Connection = connection;
                    command.CommandText = sql;

                    var reader = command.ExecuteReader();

                    // データが存在すれば
                    if (reader.HasRows)
                    {                        
                        while (reader.Read())
                        {
                            // テーブル表示
                            var tbname = reader.GetString(0);
                            Console.WriteLine(tbname);
                        }
                    }

                    //クローズ
                    connection.Close();
                }
                catch (MySqlException me)
                {
                    Console.WriteLine("ERROR: " + me.Message);
                }

                Console.ReadKey();

            }
        }
    }
}

テーブル一覧が取得されていることが確認できます。