DataSetのDbNull値を変数へ入れる際
Integer型なら「0」、String型なら「Nothing」に変換する簡単な方法はありませんか?
String型ならDataColumnのNullValueプロパティを「(なし)」にすることで対応できますが
数値型はNullValueプロパティを変更できないためこの方法で対応できません。
DbNullを変数へ入れる前に
Is列名Null()メソッドでチェックできることはわかったのですが
列の数が多くなると一つ一つの項目をチェックするのは大変なため
まとめて簡単に変換できる方法などありましたら
教えていただければと思います。
lang
1 ''Is列名Null()メソッドでチェック 2 If ds.DataTable1(0).IsDataColumn1Null = False Then 3 Dim a As Integer = ds.DataTable1(0).DataColumn1 4 End If
追記)
回答を参考に汎用メソッドを作ってみました。
こんな感じでしょうか?
lang
1 ''呼び出し 2 Dim a As Integer = GetValue(ds.DataTable1(0), "DataColumn1") 3 4 ''汎用メソッド 5 Public Function GetValue(ByVal row As DataRow, ByVal colnm As String) As Object 6 Dim dt As DataTable = row.Table 7 Dim col As DataColumn = dt.Columns(colnm) 8 If IsDBNull(row(col.ColumnName)) Then 9 If col.DataType Is GetType(String) Then 10 Return Nothing 11 Else 12 Return 0 13 End If 14 Else 15 Return row(col.ColumnName) 16 End If 17 End Function
回答1件
あなたの回答
tips
プレビュー