タイプの比較ASP.NETとはDBNullについての質問
質問
私は、MSSQLデータベースからの記事のレコードを引っ張る機能を持っています。いくつかは、PDFファイルへのURLであり、他はSQLに格納されている実際の記事です。保存されている記事は、レコード内のURL(はDBNullを)持っていないので、私はそれを解析することができるようにしたいです。私は簡単なテストを試してみました。
If Row.Item("url").GetType Is GetType(DBNull) Then
//' do something here....
End If
しかし、私は "Conversion from type 'DBNull' to type 'String' is not valid.
" の例外を取得します。私は上記の条件に時計を行うときに面白い部分は、である、それはTrue
またはFalse
を返します。
誰もが知っていますか?ありがとう!
解決
だけでは使用しない理由ます:
If Row.IsNull("url") Then
//' do something here....
End If
他のヒント
私はいつもちょうどレコードでこのテストを使用します:
If IsDBNull(strSQLTiggRes("url")) Then
'Do something .
Else
'do something else
end if
私は好き
if (DBNull.Value.Equals(Row.Item("url")))
試してみてください。
If Row.Item("url") = DBNull.Value
エラーがRow.Item("url")
がしますないSystem.String
によって、この時点で値そうDbNull
であることを伝えるされます。
このような何かを試してみてください。
If Row.Item("url") Is Nothing Then
//' do something here....
End If
あなただけの行うことはできません。
If Row.Item("url") = DBNull.Value Then
End If
私の好みはあります:
If Not Object.Equals(DBNull.Value, Row.Item("url")) Then
'Hooray!
End If
VBでは、あなたも直接IsDBNull
機能(Microsoft.VisualBasic
免責事項)を使用することができます:
If Not IsDBNull(Row.Item("url")) Then
'Hooray!
End It
これを使用します。
if row("ColumnName") is DBNull.value Then
'do something
end if
あなたは、このケースであるあなたが使用しなければならないことがわかります、あなたはDTOはないだけの種類の値を比較旧姓。また、あなたが代わりにはDBNullの何も返さないために使用することができ、再利用可能な機能にそれを置きたいことがあります。
function checkvalue(item as object)
if item is dbnul.value then
return nothing
else
return item
end if
end function
所属していません StackOverflow