Pregunta

Tengo una función que extrae de los artículos registros de una base de datos MSSQL.Algunos son direcciones Url a Pdf, y otros que son artículos que se guardan en el SQL.Los artículos que se almacenan no tenemos una dirección URL (DBNull) en el registro, por lo tanto, quiero ser capaz de analizar eso.He intentado una simple prueba:

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

Sin embargo, me da la "Conversion from type 'DBNull' to type 'String' is not valid."la excepción.La parte graciosa es que cuando hago un reloj en el anterior condicional, devuelve True o False.

Alguien sabe por qué está pasando esto y/o una forma de arreglar esto?Gracias!

¿Fue útil?

Solución

¿Por qué no usar:

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

Otros consejos

Siempre sólo tiene que utilizar esta prueba en el expediente:

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

Me gusta

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

Trate

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

El error le está diciendo que es un Row.Item("url") System.String lo que el valor en este punto y no por DbNull.

Trate algo como esto:

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

¿No puedes hacer

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

End If

Mi preferencia es:

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

En VB, también se puede utilizar la función IsDBNull (Microsoft.VisualBasic descargo de responsabilidad) directamente:

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

Utilice esta.

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

Usted encontrará que debe utilizar es en este caso y usted nee dto comparar los valores no sólo los tipos. También puede querer poner en una función reutilizable que se puede utilizar para devolver nada en lugar de DBNull

function checkvalue(item as object)
     if item is dbnul.value then
          return nothing
     else
          return item
     end if
 end function
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top