C# MySQL・テーブルの存在チェックと削除

C#サンプルコードプログラミング

概要説明

テーブルを削除するサンプルです。

テーブルが存在するか、information_schema(テーブルの名前、カラムのデータ型、アクセス権限などの MySQL Server に関する情報が格納されているテーブル)を検索して調べます。存在している場合にテーブルを削除するサンプルです。

プログラミング

言語:C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using MySql.Data.MySqlClient;

namespace SQLiteサンプル
{
    public partial class Form1 : Form
    {

        /// <summary>
        /// button1クリック時処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            // MySQLへの接続情報
            string connectionString = "server=localhost;" +
                                      "uid=root;" +
                                      "pwd=Develop_000;" +
                                      "database=test_schema";

            // 接続先データベースを指定する
            MySqlConnection con = new MySqlConnection(connectionString);

            try
            {
                // データベースと接続する
                con.Open();

                // SQLコマンドを宣言する
                MySqlCommand cmd = con.CreateCommand();

                // sampleテーブルが存在するか確認する
                cmd.CommandText = " SELECT COUNT(*) from information_schema.tables " +
                                  " WHERE table_schema = 'test_schema' " +
                                  "   AND TABLE_NAME = 'sample' ";

                int cnt = Convert.ToInt32(cmd.ExecuteScalar());
                if (cnt > 0)
                {
                    // サンプルテーブルが存在する場合にはテーブルをドロップする
                    cmd.CommandText = "drop table sample";
                    cmd.ExecuteNonQuery();
                }
            }
            finally
            {
                // データベースを切断する
                con.Close();
            }
        }
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
       }
    }
}

実行結果

予めsampleテーブルを用意します。(カラムはなんでもOK)

buttonをクリックします。

SCHEMASのリフレッシュをクリックすると、テーブルからsampleが削除されていることが確認できます。

以上

コメント

タイトルとURLをコピーしました