DataTableのあいまいな検索にご注意を!!

開発をされている方は、ご存知の方が多いのでしょうか?

納品したシステムで不具合の連絡がありました。
聞くと、全角文字と半角文字でそれぞれ同じ文字列をキーに持つデータがあり
システム的にキー違反の警告メッセージを表示していました。
DB的には問題なく登録できるデータでした。

例えば、こういうことですね。

hoge   ・・・ 半角文字

hoge   ・・・ 全角文字

解析してみると、DataTableにデータを突っ込んで、DataTableのRowFilterで
キー項目を抽出し、件数を取得していました。

datatable.RowFilter = “key=’hoge'”

すると、件数が 2件 となったわけです。

上記の現象と同じように、大文字・小文字の関係でも同じ結果になりました。

hoge   ・・・ 小文字

HOGE   ・・・ 大文字

<対応策>
解決策として、以下のように対応しました。
DataTableのプロパティ CaseSensitive を True に設定する。

dataTable.CaseSensitive = True

でも、毎回設定するのは面倒ですよね。
DataTableを継承して、カスタムクラスを作成しようか検討中です。

コメント

タイトルとURLをコピーしました