データベースでのSQL実行を楽にする


C#でデータベースのSQLを実行するのに必要な手続きは少々面倒。ということで簡単なライブラリを作って簡単に実行できるようなるライブラリを作ってみました。

仕組みはDbConnectionにSQL発行する拡張メソッドを追加する、そんだけです。
SQLインジェクション対策のためパラメータ指定もメソッドだけで簡単にできるように、脆弱性対策も楽ちんになるかもしれません

仕様

きっちりデータベースのインターフェースを実装しているデータベースライブラリならほとんど使えると思います。
DbConnectionに対応するDbCommandは毎回検索しています。そこの所でパフォーマンスを悪くしていますが、すべてのコネクションに対応させるため致し方ないことです。
逆に言えば、コネクションをMySQLやSQLiteとコロコロ変えてもSQLの実装や発行は同じままで大丈夫ということです。

ソースコード

SQLの発行

名前空間を指定していない静的クラスを作り、そこの中にこのメソッドを入れてください。
データベースのコネクションからCreateメソッドでコマンドを発行。ExecuteNonQueryメソッド等で実行することができます。

コードを出来るだけ短縮化したいので更にSQLの実行も簡単にできるようなメソッドも作りました。

SQLの実行

こちらの方は簡単な作りになっています。命令を実行したらすぐにコマンドクラスを破棄しています。再使用はできないようになっているので、何度も同じ命令を使う場合はこちらの拡張メソッドは使わないでください。

本来のExecuteReaderではなく、拡張メソッドの方を使うことでラムダ式で実行できるようになります。破棄も自動でするのでコードが一気に短く、楽になります。

サンプルソース

System.Data.Sqliteを使用したサンプルソースです。

ソースコードはこちらでもダウンロードできます。

上記のソースコードに+αでおまけもいれてます。

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">