- - PR -
DataGridのセルの色指定時の例外エラー
1
投稿者 | 投稿内容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-11-27 11:04
DataGridTextBoxColumnの派生クラスを作成し、特定の条件時にセルのbackBrushを変更する処理をしています。正しく動作することは、確認済みです。
ここで、date型のフィールドを追加したところ、指定されたキャストは有効ではありません。と、エラーが出るようになりました。調べたところ、追加したフィールドにnullがある場合に発生しているようです。 どうすれば回避できるか、お知恵をお借りしたいと思います。 よろしくお願いします。 | ||||||||||||||||||||
|
投稿日時: 2004-11-27 12:23
諸農です。
> どうすれば回避できるか、お知恵をお借りしたいと思います。 どのような拡張をしているのか、具体的に提示していただきたいと思います。 ちなみに拡張しているところで無理にキャストしている部分って無いですか? あと、AllowDBNull とか NullText とかもありますけど、どうなっているのでしょうか? _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||||||||||||||
|
投稿日時: 2004-11-27 13:09
すみません。具体的には、
date型のしかもnullを含むフィールドを追加したときのみエラーとなります。 left inner join句で結合した右側のテーブルにあるdate型のフィールドが 問題となっています。 [ メッセージ編集済み 編集者: Ken2 編集日時 2004-11-27 13:14 ] [ メッセージ編集済み 編集者: Ken2 編集日時 2004-11-27 13:16 ] | ||||||||||||||||||||
|
投稿日時: 2004-11-27 13:24
諸農です。
前にも書きましたが、この部分って無理にキャストしていることになりませんか? cellValueにDBNullが想定されるのであれば、それ相応の対処を書く必要があるのでは? と言うよりも前に、Exceptionが発生している部分ってどこなんでしょうか? そこをつぶしたいんですよね?
う〜〜ん、何を問題にされているのでしょうか? クラス外のプログラミングのところで、nullを含むレコードを返してしまう処理を書いているのが問題なんでしょうか? であれば、nullを含まないようにSQLを書き換えればいいのではないでしょうか。クラスで対処する必要は無くなりますよね? それとも、最初の段階で書かれているとおり、クラス内部の話で、フィールドがnullでも適切に表示したいと言うことを問題にしているのでしょうか? _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||||||||||||||
|
投稿日時: 2004-11-27 14:11
何度もすみません。どうもありがとうございます。
省略していましたが、GetColumnValueAtRowの前に if (cellValue != null){ が入ります。これではいけませんか?
言葉足らずですみません。 フィールドの型が、文字列や数値型の場合はNULL値があってもエラーは発生しません。 date型のフィールドにNULL値があった場合エラーとなるので、どうすればよいのか? フィールドの型は、フィルタ処理等で使用したいのでdate型のままにしておきたいのです。 伝わりましたでしょうか? | ||||||||||||||||||||
|
投稿日時: 2004-11-27 14:49
諸農です。
Exceptionが発生している箇所は特定できたのでしょうか? Exceptionが発生している理由はキャストが無効ということですよね。
で、nullデータの時にこのコード部分はすり抜けてくるんでしょうか? cellValueにインスタンスが設定されていたらnullではないのですり抜けるのでは? DBのnull値は、先にも書きましたがDBNullクラスを使って判定します。 別のサイトになりますが、次の投稿にあるoverrideされたPaintメソッドが参考になると思います。 GDNJ DataGrid、列の色指定 _________________ 諸農和岳 Powered by Borland Delphi/C++Builder & Microsoft VS.NET [ メッセージ編集済み 編集者: Jubei 編集日時 2004-11-27 14:52 ] | ||||||||||||||||||||
|
投稿日時: 2004-11-27 16:45
このページが、大変参考になりました。無事解決いたしました。 どうもありがとうございました。 |
1