質問

私は、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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top