| ■5390 / ) |
Re[9]: DATAVIEWのROWFILTERでの検索 |
□投稿者/ C#初心者 (10回)-(2007/07/11(Wed) 21:01:36)
|
■No5368 (魔界の仮面弁士 さん) に返信 > # あえて、解決チェックを外した状態で投稿。 > > > ■No5362 (C#初心者 さん) に返信 >>どういうことでしょうか?シングルでは囲んでいますけど。 > > そういうことではありません。テキストボックスに特殊文字が入力されていた場合の話です。 > 具体的な例を挙げてみれば、たとえば > filter = "(t_transmit LIKE '%送信%' )"; // 「送信」を検索 > のような内容であれば良いのですが、 > filter = "(t_transmit LIKE '%送*信%' )"; // 「送*信」を検索 → エラー > filter = "(t_transmit LIKE '%送]信%' )"; // 「送]信」を検索 → エラー > といった文字列だと、DataView の処理がエラーになってしまう、ということです。 > > ですから、TextBox からそうした特殊な文字列が入ってきた場合に備え、 > それぞれの特殊文字に対して適切なエスケープ処理を施したさなければなりません。 > > たとえば上記の例でいえば、処理後のフィルタの内容は、 > filter = "(t_transmit LIKE '%送[*]信%' )"; // 「送*信」を検索 > filter = "(t_transmit LIKE '%送[]]信%' )"; // 「送]信」を検索 > などといった結果になるでしょう。 > > これらの特殊文字については、ヘルプで DataColumn クラスの Expression プロパティを調べると載っています。 > > >>はい・・・申し訳ありません。 >>ASP.NETのC#です。 > 分類の修正をお願いします。>投稿者 or 管理人s
試したところ filter = "(t_transmit LIKE '%送[]]信%' )"; // 「送]信」を検索 ではエラーになりませんでした。 filter = "(t_transmit LIKE '%送[*]信%' )"; // 「送*信」を検索 だとエラーになりました。 エスケープ文字は列名に入るとエラーが返るそうです ワイルドカードの場合エラーが出ていました。
|
|