【追記】
最近は,リソースファイルに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#の構文で組み立てなおす
の繰り返しですかねぇ??
ってところで,文字列リソースファイルが登場

こやつ,文字列に関してけっこう自由にプログラム内から参照できます
やり方的には
-
1.ソリューションエクスプローラ,ターゲットのプロジェクトにて,右クリック~追加~新規追加
2.アセンブリリソースファイルを選択.拡張子はresxになりますです
3.このアセンブリリソースファイルを開くと,”名前”,”値”,”コメント”欄が出てきます
名前は,C#コードから参照する名称になります
値にはSQLクエリ文字列をドカンと丸ごとコピペ.改行とかも大丈夫です
コメントは適時にて
この定義された,文字列リソースを参照するには
string sql; sql = global::文字列リソース.sqldef.sql1;みたいに,global::で始めて
“既定の名前空間”.”アセンブリリソースファイル”.”アセンブリリソースファイル内の名前”
で,OKです
これ,SQLにバインドパラメータを渡すときの構築も,けっこう楽になるかもですよん 😉
関連記事
- 【C++】CPPで鬼のような実装を行った!動いた!!キタ――(゚∀゚)――!! 【2020年09月29日(火)】
- 昨日はC#で4000行,今日はC++で300行 【2020年08月25日(火)】
- 【#Xamarin】ファイルの読み書き出来た!「PCL Storage」&「NetStandard Storage」 【2018年12月22日(土)】
- 【#Xamarin】弊社ライブラリを移植作業中 【2018年12月21日(金)】
- C#での自PC内プロセス間通信(WCF版:Windowsサービスにて実装) 【2018年08月06日(月)】
コメント
今日から数日,雨っぽい
【#新型コロナウイルス】コロナ、新型インフルと同分類へ
【#新型コロナウイルス】宮崎:自宅療養者が246人(21/1/12)
すんごい不安感に襲われており
【#アメリカ大統領選】抗議デモのトランプ支持者らが米議会に乱入
【#新型コロナウイルス】宮崎:100人超の感染確認(21/1/7)
【#新型コロナウイルス】宮崎:80人の感染確認(21/1/6)
ちょっと頭痛い
あけましておめでとうございます!(21/1/1)