[C#]SQLiteを使う(プリペアードステートメント)

[スポンサードリンク]

本記事ではXMLからSQLを取得し、SQLiteで実行する。プリペアードステートメントを使用する。

プロジェクト仕様

【プログラム実行時】
1.SQLiteのDBファイルが存在すれば削除する。

【実行ボタン押下時】
1.ユーザマスタがすでに存在すれば、削除する。
2.ユーザーマスタを作成する。
3.ユーザーマスタにデータをインサートする。
4.ユーザーマスタからデータを取得する。
5.取得したデータを画面に表示する。

プリペアードステートメント

プリペアードステートメントとは、SQLクエリの実行前にパラメータを埋め込む方式。
たとえば通常は

なんかこんな感じ?で、ベタでソースにSQLを書くけど、
プリペアードステートメントなら

というSQLを用意しておけば、「?」の部分にパラメータを埋め込むことで、SQLを使い回すことができる。

プリペアードステートメントを使うシチュエーションとして、SQLを別の設定ファイルで管理する場合などがある。
そこそこ大規模なシステムになると、ソースにSQLを直書きすると、仕様変更などが発生した場合に修正漏れや、どのソースを修正すればよいかなどさまざまな問題が発生する。

SQLを別ファイルで管理し、SQLのID番号で呼び出せば管理は楽である。

今回はXMLでSQLを管理することとし、XMLを読み込む処理も記載した。
XMLの読み書きについては、時間があれば別記事で投稿するつもりである。

SQLiteをC#で使うための準備

Visual Studio2017の「ツール」→「NuGetパッケージマネージャ」→「パッケージマネージャコンソール」を実行する。

プロンプトで
「Install-Package System.Data.SQLite」
を入力して実行する。

これで、Visual Studio 2017のこのC#プロジェクトでSQLiteのパッケージがインストールされ、参照設定される。

ソースコード

XMLファイル

XMLファイルはSQLNoで管理している。

C#プログラム

注意

SQLiteのデータファイルをつかんだままになる

SQLiteのコネクションはusing句を使用して開いているが、どうもプログラムを終了するまでSQLiteのデータファイルをプログラムがつかんでいるらしい。

データファイルの削除処理は、当初「実行」ボタンの冒頭に書いていたが、上図のようなエラーが出るために、フォームロード時の処理に書いた。

「実行」ボタン押下時の処理で、テーブルが存在していたら、テーブルを削除しているため、ファイルの削除処理はいらないといえばいらない。

[スポンサードリンク]

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


ピックアップ記事

  1. Visual Studioで開発時、「ファイルを開くダイアログ」を表示時にWindows7がフリーズ…
  2. SQL Server認証ができるようにする設定方法 (さらに…)…
  3. 割り算に必須な0除算回避 (さらに…)…
  4. 本記事ではXMLからSQLを取得し、SQLiteで実行する。プリペアードステートメントを使用する。 …
  5. Oracle 12cではCDBとPDBの概念があるため、それより前のバージョンの様にログインすると、…

カテゴリー

[スポンサードリンク]




ページ上部へ戻る