[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. C言語のprintf関数でよく用いられるエスケープシーケンスを表すバックスラッシュ「\」の入力方法は…
  2. SQL Server認証ができるようにする設定方法 (さらに…)…
  3. dpiAwareの設定を変える。 (さらに…)…
  4. リモートデスクトップ接続のサーバーで、スタートメニューが反応しなくなった場合 (さらに&hell…
  5. コンボボックスで「全て」が選択された場合に、NULLの行も取得したい場合。 (さらに&helli…

カテゴリー

[スポンサードリンク]




ページ上部へ戻る