このブログ「吟遊詩人の戯言」 の記事検索...

SQLクエリ文字列は,文字列リソースファイルに記述したら便利です

関連記事

【追記】

最近は,リソースファイルにSQLを書くのをやめて
別立てのテキストファイルを準備し,これを「埋め込まれたリソース」として,EXE内に取り込んで
C#コードから,引っ張りだす,ってことをやってます

こっちのほうが,長いSQL文は楽です

詳しくはこちら

SQLクエリ文字列は,埋め込みリソース化するテキストファイルを利用すると,より便利です@ぎんゆぅ~




機械制御やったり,モバイルやってりと,日々で仕事内容が変わるオイラ
今日は,SQLやってます@怪しい解析ソフト向け

C#にてドッカンドッカン,記述しておりますが
SQLクエリ文字列の扱いって,けっこう面倒...
[SQL]
select * from TestTable
where ID = 100;
[/SQL]

みたいなクエリを,C#中のコードに記述すると

string sql;

sql +=  "select * from TestTable ";
sql +=  "where ID = 100";

な,感じになりますねぇ...

いや,クエリが小さければ,これでもいいけど
副クエリを3段も4段も重ねて,クエリの行数20行とか30行とかになってくると,さすがに面倒...

しかも,クエリ上に不具合あったりしたときとか,SQLのクエリデバッガに掛けるときは

C#の構文を外して行き
クエリデバッガにコピペしてテスト
修正終わったら,また↑みたいに,C#の構文で組み立てなおす

の繰り返しですかねぇ??




ってところで,文字列リソースファイルが登場 :mrgreen:

こやつ,文字列に関してけっこう自由にプログラム内から参照できます

やり方的には

    1.ソリューションエクスプローラ,ターゲットのプロジェクトにて,右クリック~追加~新規追加
    2.アセンブリリソースファイルを選択.拡張子はresxになりますです
    3.このアセンブリリソースファイルを開くと,”名前”,”値”,”コメント”欄が出てきます


名前は,C#コードから参照する名称になります
値にはSQLクエリ文字列をドカンと丸ごとコピペ.改行とかも大丈夫です
コメントは適時にて

この定義された,文字列リソースを参照するには

string sql;

sql = global::文字列リソース.sqldef.sql1;

みたいに,global::で始めて
“既定の名前空間”.”アセンブリリソースファイル”.”アセンブリリソースファイル内の名前”
で,OKです

これ,SQLにバインドパラメータを渡すときの構築も,けっこう楽になるかもですよん 😉

 
 
 
 

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img localsrc="" alt="">