機械制御やったり,モバイルやってりと,日々で仕事内容が変わるオイラ
今日は,SQLやってます@怪しい解析ソフト向け
C#にてドッカンドッカン,記述しておりますが
SQLクエリ文字列の扱いって,けっこう面倒...
SQL:
- SELECT * FROM TestTable
- WHERE ID = 100;
みたいなクエリを,C#中のコードに記述すると
C#:
- string sql;
- sql += "select * from TestTable ";
- sql += "where ID = 100";
な,感じになりますねぇ...
いや,クエリが小さければ,これでもいいけど
副クエリを3段も4段も重ねて,クエリの行数20行とか30行とかになってくると,さすがに面倒...
しかも,クエリ上に不具合あったりしたときとか,SQLのクエリデバッガに掛けるときは
C#の構文を外して行き
クエリデバッガにコピペしてテスト
修正終わったら,また↑みたいに,C#の構文で組み立てなおす
の繰り返しですかねぇ??
ってところで,文字列リソースファイルが登場
こやつ,文字列に関してけっこう自由にプログラム内から参照できます
やり方的には
-
1.ソリューションエクスプローラ,ターゲットのプロジェクトにて,右クリック~追加~新規追加
2.アセンブリリソースファイルを選択.拡張子はresxになりますです
3.このアセンブリリソースファイルを開くと,"名前","値","コメント"欄が出てきます
名前は,C#コードから参照する名称になります
値にはSQLクエリ文字列をドカンと丸ごとコピペ.改行とかも大丈夫です
コメントは適時にて
この定義された,文字列リソースを参照するには
C#:
- string sql;
- sql = global::文字列リソース.sqldef.sql1;
みたいに,global::で始めて
"既定の名前空間"."アセンブリリソースファイル"."アセンブリリソースファイル内の名前"
で,OKです
これ,SQLにバインドパラメータを渡すときの構築も,けっこう楽になるかもですよん



