Frage

Ich habe eine Funktion, die Artikel Datensätze aus einer MSSQL-Datenbank zieht. Einige sind URLs PDFs und andere sind aktuelle Artikel in der SQL gespeichert. Die Artikel, die gespeichert sind, haben keine URL (DBNull) in der Aufzeichnung, so möchte ich in der Lage sein, das zu analysieren. Ich habe versucht, einen einfachen Test:

If Row.Item("url").GetType Is GetType(DBNull) Then
    //' do something here....
End If

Allerdings bekomme ich die „Conversion from type 'DBNull' to type 'String' is not valid.“ Ausnahme. Der lustige Teil ist, wenn ich eine Uhr auf der obigen Bedingung tun, es gibt True oder False.

Wer weiß, warum dies geschieht und / oder eine Möglichkeit, dies zu beheben? Dank!

War es hilfreich?

Lösung

Warum nicht einfach verwenden:

If Row.IsNull("url") Then
    //' do something here....
End If

Andere Tipps

Ich habe immer nur diesen Test auf der Platte verwendet werden:

If IsDBNull(strSQLTiggRes("url")) Then
     'Do something                   .
Else
     'do something else
end if

Ich mag

if (DBNull.Value.Equals(Row.Item("url")))

Versuchen

If Row.Item("url") = DBNull.Value

Der Fehler, dass Row.Item("url") sagt ein System.String wird so der Wert an dieser Stelle nicht durch DbNull.

Versuchen Sie etwas wie folgt aus:

If Row.Item("url") Is Nothing Then
    //' do something here....
End If

Können Sie nicht einfach tun,

If Row.Item("url") = DBNull.Value Then

End If

Meine Präferenz ist:

If Not Object.Equals(DBNull.Value, Row.Item("url")) Then
  'Hooray!
End If

In VB, können Sie auch die IsDBNull Funktion (Microsoft.VisualBasic Haftungsausschluss) direkt an:

If Not IsDBNull(Row.Item("url")) Then
  'Hooray!
End It

verwenden.

if row("ColumnName") is DBNull.value Then
     'do something
end if

Sie werden feststellen, dass Sie verwenden, muss in diesem Fall ist und Sie nee dto die Werte nicht nur die Typen vergleichen. Sie können auch sie in eine wiederverwendbare Funktion setzen wollen, die Sie anstelle von DBNull zurückzukehren nichts verwenden

function checkvalue(item as object)
     if item is dbnul.value then
          return nothing
     else
          return item
     end if
 end function
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top