- - PR -
DataViewでNULL値のRowFilter
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-01-26 18:03
DataViewのRowFilterを使いデータ型(System.Int16)の列
に含まれているNull値にフィルターをかけたいと思っているのですが、 下記のようなエラーが出てしまいます。 数値型の列のNull値にフィルターを掛ける方法を教えてください。 列:System.Int16型 TestView.RowFilter="Isnull(TestColumn,'Null Column') = 'Null Column'"; TestView.Sort=null; :エラー文: System.Int16 および System.String で '=' 操作を実行できません。 | ||||||||||||
|
投稿日時: 2007-01-26 18:28
このエラー文が何を指しているかを考えると、だんだんとわかってくるかもしれません。 列は System.Int16 型ですから、それと System.String 型を '=' 操作で比べ ようとしているからエラーになっているわけですよね。これはエラーメッセージの通りなので、 理解していただけると思います。 じゃあなんで System.Int16 と System.String が比較されようとしているのか、 と言えば。
この RowFilter で、IsNull を使って NULL だった場合は 'Null Column' という 文字列 に変換していますよね。でも NULL じゃない場合はどうなるでしょう。列の内容 そのままを比較しようとしますから、System.Int16 と 'Null Column' の System.String を比較しようとします。なのでエラーが発生しているわけです。 こういった場合は、もう少し単純に
で良さそうですが、それではダメでしょうか。 _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||||||||||
|
投稿日時: 2007-01-26 18:52
ぽぴ王子 さん返答ありがとうございます。
ご指摘の通りできました。ありがとうございました。 |
1