|
魔界の仮面弁士さん、shuさん、ご回答有難うございます。 記事を確認するのが遅くなってしまい申し訳ありません。
■No54406 (魔界の仮面弁士 さん) に返信 > 2010/10/18(Mon) 18:58:03 編集(投稿者) > # 解決済みチェックつけ直し > -----------------
> なお、最初の質問に記載しておられた > If Not(row.Is列名Null()) Then > If row.列名.ToString <> "" Then > '処理 > End If > End If > の場合、「空文字列」では処理されますが、DBNull では処理されていないため、 > これでは「DBNullもしくは空文字列」という判定にはなっていません。 > > 2判定にするなら、このようになると思います。 > If row.Is列名Null() OrElse String.IsNullOrEmpty(row.列名) Then > 'DBNullもしくは空文字列 > Else > 'データあり > End If
ご指摘の通り、DBNullではない時の動作を失念しておりました。有難うございます。
>>System.InvalidCastException: 型 'DBNull' から型 'String' への変換は無効です。 > 例外が発生しないようにするため、デザイナー(型付DataSet)の段階で、 > 各列の[NullValue]プロパティ(≠AllowDBNull プロパティ)を変更しておくという > 手法もあります。その列が String 型の場合に限定されますけれども。
なるほど、デザイナーのプロパティから設定する事ができたのですね。 今まで全列のNullValueプロパティをデフォルトのThrow exceptionにしておりました。 今後はこちらの設定を有効に利用したいと思います。
■No54407 (shu さん) に返信 > ■No54405 (assa さん) に返信 > > Char(n), NChar(n)対応なら > > if row("列名").ToString.Trim = "" then > else > end if > > or > > if row("列名").ToString.Trim.length = 0 then > else > end if > > > データセットのデザイナでNullValueの設定をEmptyにするというのもありかも。
できればスペースのみのデータも拾いたいと思っていたので、 ご回答頂いたコードで更に希望通りの結果が得られそうです。
NullValueプロパティの設定も別プロジェクトで利用したいと思います。
お二方のお陰で問題を無事解決する事ができました。 どうも有難うございました。
|