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

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

概要説明

システムテーブル(sqlite_master)をテーブル名で検索する。

あれば、そのテーブルを削除するサンプルです。

プログラミング

言語:C#

using System.Data.SQLite;

/// <summary>
/// button1クリック時処理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
    // EXEの起動パスを取得する
    string exePath = System.Windows.Forms.Application.StartupPath;

    // DBフルパスを組みたてる
    string dbFullPath = System.IO.Path.Combine(exePath, "test.db");

    // 接続先データベースを指定する
    SQLiteConnection con = new SQLiteConnection(String.Format($"Data Source = {dbFullPath}"));

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

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

        // sampleテーブルが存在するか確認する
        cmd.CommandText = " SELECT COUNT(*) from sqlite_master " +
                          " WHERE type='table' AND name='sample'";

        int cnt = Convert.ToInt32(cmd.ExecuteScalar());
        if (cnt > 0)
        {
            // サンプルテーブルが存在する場合にはテーブルをドロップする
            cmd.CommandText = "drop table sample";
            cmd.ExecuteNonQuery();
        }

    }
    finally
    {
        // データベースを切断する
        con.Close();
    }
}

コメント

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