0

私は通常、このSqlDataAdapterクラスを使用して SQL Server からデータを取得し、.NET アプリケーションで使用します。ほとんどの場合、返されたオブジェクトをトラバースしているときに、セルに VB.NETに変換されるDataSeta が含まれているため、null オブジェクト例外が発生することがよくあります。DbBullNothing

当然、空のセルやそのようなデータ型を格納NULLするよりも、空のセルを格納する方が適切です。NVARCHAR

これらの DbNull を VB.NET のオブジェクトに変換するためのベスト プラクティス (あると仮定) は何ですか。最も一般的なのは空の文字列ですが、各データ型には独自の「最も適切な」「空」の値がありますか?

ここでの目標は、DB をガベージでいっぱいにしたくないこと、アプリケーションが に遭遇したときにアプリケーションを壊しDbNullたくないこと、またはこのようなばかげたことをする必要がないことです...

望ましくない解決策!

For Each row As DataRow In dt.Rows
    Dim cell1 As String = If(IsDBNull(row(0)), "", row(0).ToString)
    Dim cell2 As String = If(IsDBNull(row(1)), "", row(1).ToString)
    Dim cell3 As String = If(IsDBNull(row(2)), "", row(2).ToString)

    Response.Write(String.Format("Cell1: {0}, Cell2: {1}, Cell3: {2}<br />", & _
                   {cell1, cell2, cell3})
Next

50 列あるとしたら、それらを使用する前にすべてをチェックするのは非常に面倒です。存在する場合は、よりインテリジェントなソリューションが必要です。

補足:

SQL Server では、似たようなことを簡単に行うことができますが、まったく同じではありません。私は通常、isnull(@value,@value)ヌルがデータセットの一部としてキャプチャされるようにするために、次のようなものを使用します。

4

1 に答える 1

0

Try this:

Dim sValue as String = ""
sValue = If(cmdComanda.ExecuteScalar(), String.Empty)
于 2015-01-23T20:00:46.333 に答える