【C#からSQLite接続】Database接続のクラスを作成したので管理が容易になった

C#.NET

【C#からSQLite接続】Database接続のクラスを作成したので管理が容易になった

DB-SQLite & C#

広く活用されているデータベースといえば、SQLiteですね。

SQLiteをC#から接続する方法と、DBクラスを作成しましたので、

こんな感じにすると管理が容易になるよっていう話です。

SQLite-GUI

DB管理者はGUI管理だと楽ですよね。そこで、今回は、

DB Browser for SQLite

を使用します。

使い方は、他のサイトへ。

C#-Nugetパッケージ管理からインストール

では、C#でSQLiteに接続する方法です。

今回は、C#のWindowsForm開発の.NetFramework4.8での場合でご紹介します。

4.8以前のVer.でもいけると思います。

プロジェクトを作成したら、Nugetパッケージ管理を開いて、参照タブにして、

「system.data.sqlite」と検索してみましょう。

検索結果から「System.Data.SQLite」をインストールします。

sqlite_packages

インストールできたら今回の要である、DB制御クラスを作成します。

DB制御クラス作成

プロジェクト名選択して右クリックメニュー⇒追加⇒新しい項目で

新規にクラスファイルを作成します。

sqlite_calss_new_create

クラスを選択してクラス名を任意で決めて追加します。

sqlite_class_name_add

クラスファイルを開いて、コードを書いていきます。

DB_クラス

クラス内容は下記の通りになります。

参照追加でusing System.Data.SQLite;を追加しています。

 

Open()、Close()のメソッドがあり、その他には、

ExecuteNonQueryは、Insert文、Create文、Delete文、Alter文、などのクエリで結果を返さないSQL文などを実行するときに使用します。コード見ての通り、returnがないで返り値がないです。

SQLiteDataAdapterは、select文などでAdapterでまとめてデータを取得するときに使用します。データセットに入れてデータテーブルからデータグリッドにデータを表示させるときなどに使います。returnがありデータを返します。

SQLiteDataReaderは、select文などでデータを取得してそのデータを1つずつや1行ずつ編集取得していくことができて、データ分析するときなどはこちらを主に使います。こちらもreturnがありデータを返します。

詳しくないので、詳細はググって下さい。

文字列にしている”Data Source=~~~~”は、扱うDBの種類によって変わります。

それぞれのDB接続子をご確認下さい。

今回は、SQLiteでの例です。

Form

それでは、画面設計とクリックイベントなどのソースコードを載せていきます。

今回は、ボタンを3つ設置、データグリッド設置、ラベル設置して、下記の処理を書いていきます。

  • Select文実行でテーブル内容をデータグリッドに表示させる。
  • Insert文実行でレコード追加させる。
  • Select文実行でテーブル内のレコード数(件数)を取得させる。

画面設計は下記の図のようにしました。

sqlite_screen_prod

using System.Data.SQLite;を追加して、SQL実行するときにDbctl.csを呼び出して活用する方法をご紹介しました。

SQLiteを使用したプロジェクトにDbctl.csクラスファイルを追加すればいいだけなので、容易に展開でき、管理も楽で、コードもスッキリしてコードレビューする際も見やすい。

結果

今回のSQLiteではテーブル作成を下記の図のようなテーブル定義にしました。

sqlite_create_table

create table文を載せておきます。

CREATE TABLE “TEST” (
“no” INTEGER,
“name” TEXT,
“remarks” TEXT,
“flag1” INTEGER,
PRIMARY KEY(“no”)
)

完成したプログラムを起動してテーブル内容がデータグリッドに表示されます。

sqlite_before_seen

select_countボタンをクリックすると3件と出てきます。

次にInsertボタンをクリックするとレコードが1つ追加されます。

Select_Viewボタンをクリック、Select_countボタンもクリックするとデータ内容と件数が表示されます。

sqlite_after_seen

他のデータベースでも同様な感じにクラスを作成して使い回せます。

OracleやPostgresQLでの例も記事にして書いてます。

ご参考に。

Oracleバージョン

【C#&OracleDB接続】Database接続クラス作成して管理が容易で開発効率UP

PostgresQLバージョン

【C#&PostgreSQL接続】Database-controlクラス作成で管理容易