[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. SQLServer SELECT文で連番を振る(項目ごとの連番・通し連番) (さらに&helli…
  2. IDとパスワードでSQL Serverでログインするユーザーを作成する。 (さらに&hellip…
  3. 画面のパラメータにより異なる検索条件や、異なるテーブルのデータを取得する際。 「UNION ALL…
  4. いまの時代、一つの企業に就職してそこで定年を迎えるというのはまれです。 しかし、それが一番いいと私…
  5. C#でSQL Serverから値を取得するには、System.Data.SqlClientクラスを使…

カテゴリー

[スポンサードリンク]




ページ上部へ戻る