dbNull の処理


ちゃまき  2012-05-25 11:19:08  No: 147606  IP: 192.*.*.*

VB2010  で Access2000にADO.NET で接続しているのですが、
Accessの"備考”というフィールド(テキスト型)が空白の場合、

Dim Z1 As String
〜省略〜
OleDA.Fill(table)

 Z1 = table.Rows(0)("備考")
のところで、dbNull  は  string に変換できません。というエラーになります。

ネットでも調べたのですが、できるだけ簡単にエラーを回避できる方法が
あれば教えていただきたいです。

編集 削除
YuO  2012-05-25 12:31:09  No: 147607  IP: 192.*.*.*

トメョノホを使ってチェックします。

モコヲサトメョノホヲサメソッドヲサィモゥヲサィモョトゥ
コッッョョッュッッウーョ
スススススススススススススススススススススススススススススススススススススススス
ニコ 魔界の仮面弁士
トコ イーアイッーオッイオィ金ゥ アウコオイコイー シ  スュアセシ常連セ シッニセシノヘヌ ス「コッッョョョッッエョ「 ス「ー「セ 書込者ノト:ロ 」 。 ン

案アゥ
トヲサレアヲサチヲサモヲサスヲサョメィーゥィ「備考「ゥョヤモィゥ

案イゥ
トヲサレアヲサチヲサモヲサスヲサョメィーゥィ「備考「ゥヲサヲサヲサ「「

案ウゥヲサ☆お奨め
トヲサレアヲサチヲサモヲサスヲサョメィーゥョニィマヲサモゥィ「備考「ゥ

案エゥヲサ
トヲサレアヲサチヲサモヲサスヲサモョニィ「ー「ャヲサョメィーゥィ「備考「ゥゥ

案オゥ
トヲサレアヲサチヲサモヲサスヲサノィョメィーゥョノホィ「備考「ゥャヲサ「「ャヲサョメィーゥィ「備考「ゥゥ

案カゥ
トヲサホヲサスヲサニィヲサチヲサマャヲサヲサチヲサマゥヲサノィノトツホィゥャヲサャヲサゥ
トヲサレアヲサチヲサモヲサスヲサホィョメィーゥィ「備考「ゥャヲサ「「ゥ


ュュ
案アヲサは比較的単純な方法です。

ただし、その空文字列がヲサトツホヲサやヲサ「「ヲサではなく、ホヲサだった場合、
実行時エラーとなります。


案イヲサは、値がヲサホヲサであってもエラーになりませんィトツホヲサはヲサ「「ヲサになるゥ。

ただし、この方法は「マヲサモヲサマ」モードでは使用できません。


案ウヲサは、マヲサモヲサマヲサでも使用できますィトツホヲサはヲサホヲサになるゥ。
文字列型以外の場合は、「マヲサトソ」や「マヲサノソ」などのヲサホヲサ許容型を指定します。

ただしこの方法を使うには、ョホナヤヲサニヲサウョオヲサ以上が必要となります。


案エヲサは、書式も指定できるという点から、文字列型以外にも、
日付型や数値型をヲサフヲサに表示する場合などにも応用が利きます。

ただ、文字列型以外の場合は、結果を表示する目的にのみ使用してください。
たとえば日付型や数値型の場合に、元の型を維持して取り出したい場合には、
この方法では無く、案ウヲサの方法を使ってください。もしくは、案オヲサの方法にて
トツホヲサ判定ヲサを行ったうえで、適切な型へキャストすることが望ましいです。


案オヲサは、ノホヲサメソッドによる判定です。
ィノヲサ演算子による構文はヲサヨツイーークヲサからなので、ヨツイーーオヲサ以下ではヲサノヲサステートメントで代用してくださいゥ

この方法は、記述が冗長的になるのが難点ですが、ョホナヤヲサアョーヲサの場合にも
使用できるため、バージョンを問わず利用できるのが強みです。


案カヲサは、判定文をヲサノトツホヲサ関数にしただけで、基本的にはヲサ案オヲサと同じです。
ここではラムダ式で作ったヲサホヲサ関数を経由させていますが、案オヲサ同様にヲサノヲサ演算子でも
良いですし、下記のように普通のヲサニヲサに置き換えれば、旧バージョンでも動作します。

ァヲサヲサトヲサレアヲサチヲサモヲサスヲサホィョメィーゥィ「備考「ゥゥ

ニヲサホィヲサチヲサマゥヲサチヲサモ
ヲサヲサヲサヲサノヲサノトツホィゥヲサヤ
ヲサヲサヲサヲサヲサヲサヲサヲサメヲサ「「
ヲサヲサヲサヲサナ
ヲサヲサヲサヲサヲサヲサヲサヲサメヲサテモィゥ
ヲサヲサヲサヲサナヲサノ
ナヲサニ


なお、『ノヲサノトツホィゥヲサヤ』というコードは、
『ノヲサヤマヲサヲサノヲサトツホヲサヤ』に置き換えることもできます。
スススススススススススススススススススススススススススススススススススススススス
ニコ ちゃまき
トコ イーアイッーカッーアィ金ゥ アウコエウコイイ シ  スュアセシ初心者セ シッニセシノヘヌ ス「コッッョョョッッアョ「 ス「ー「セ 書込者ノト:ロ 」。「  ン
モコ 

案ウでやってみたいと思います。
詳しく教えていただきありがとうございます。

編集 削除