sqlインジェクション対策の一つのメタ文字のエスケープ処理。ローカルで利用するwindowsアプリケーションなので、インターネット上のwebアプリのように攻撃されることはないけれど、操作している上でメタ文字を入力してしまうということが起こりうるため一応対策。
“‘”(シングルクォート)をエスケープ処理する。入力文字列中にシングルクォートが存在すれば、その前にもう一個シングルクォートを挿入するようにコーディングする。シングルクォートを見つける手段は正規表現を使うことにする。
サンプルコード
Imports System.Text.RegularExpressions
…
‘文字列中にシングルクォートが存在すれば、シングルクォート2個に置き換える
Dim inputedValue As String = Regex.Replace(Me.textBox1.text, “‘”, “””)
visual studioのreportviewer コントロールの設定で嵌ってしまったので備忘。reportviwerコントロールをフォーム上に配置したらレポートの設定をするためにrdlcという拡張子がついたレポート用のファイルを作成する。その作成が終わったらreportviewerのレポートとして設定しする。そのとき、データソースの設定で項目が複数あるとどうもデータのグラフへのバインドがうまくいかない。データソースには存在するデータのみを設定しなければグラフは描画されない。また、グラフへデータソースとして設定する場合に、そのデータソースのテーブルにnullが存在すると描画されない。null対策としてはIIF(isnull(field1),0,field1)というようなことで応急措置。