スポンサーリンク
スポンサーリンク

.NET 8.0 + Windowsフォームアプリ + CsvHelper + Dapper + SQLite で実装する CSVファイルインポート

.NET CoreC#CsvHelperDapperSQLiteVisual StudioWindowsフォームアプリデータベース

前回作成した .NET 8.0 + Windowsフォームアプリ + Dapper + SQLite で実装するCRUD処理 に、CsvHelper NuGetパッケージをインストールし、Dapperを通して CSVファイルを SQLiteデータベースへインポートする機能を追加しました。CSVファイル処理の主流は CsvHelper。
ソースコードは GitHub で公開しています。

 

データベース

テーブル定義は前回作成したテーブルをそのまま使用。

 

CSVファイル

テーブル定義に一致する、インポート用に作成したCSVファイル。

 

ソースコード構成

 

NuGet パッケージ インストール

CsvHelperパッケージをインストール

使用したバージョンは 2024/11/3時点で最新の v33.0.1。

 

ソースコード変更内容を解説

 

/CSV/政権.csv

インポート用に作成したCSVファイル。

 

/DB/EWise.db

前回、DB Browser for SQLiteで作成した SQLiteのデータベースファイルを流用。

 

/WinFormsApp1/WinFormsApp1/Form1.cs

CsvHelperの usingを追加。
「CSVファイルをインポート」ボタンの Clickイベントハンドラを追加。
「全データ削除」ボタンの Clickイベントハンドラを追加。
LoadCsv()メソッドで CsvHelperを使い CSVファイルをインポートし、M政権モデルクラスの Listへ変換している。CsvHelperを使用すると読み込んだファイルのデータをモデルクラスに変換する処理がシンプルになる。

 

/WinFormsApp1/WinFormsApp1/Form1.Designer.cs

画面レイアウトに「CSVファイルをインポート」「全データ削除」ボタンを追加。

 

/WinFormsApp1/WinFormsApp1/FormEdit.cs

メソッド名を Add()から Insert()へ変更したのみ。

 

/WinFormsApp1/WinFormsApp1/Sql/Sql政権.cs

メソッド名を Add()から Insert()へ変更。
読み込んだ CSVファイルのデータを SQLiteへ登録する InsertRange()メソッドを追加。
Dapperを使うことで Listデータをループせずに一括Insertしている。
便宜的にテーブルデータを全件削除する DeleteAll()メソッドを追加。

 

/WinFormsApp1/WinFormsApp1/WinFormsApp1.csproj

インストールした CsvHelperが追加されている。

 

コメント

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