none
Manipular valores nulos Access RRS feed

  • Pergunta

  • Olá, tudo bem com vocês? Então, sempre que uso uma condição if, por exemplo, para verificar o valor de um campo, se ele está vazio retorna o erro "O operador '=' não está definido para tipo 'DBNull' e cadeia de caracteres "".".

    Um exemplo de código que retornaria esse erro seria esse:

    Imports System.Data.OleDb
    
    Public Class Main
        Dim conn As OleDbConnection = New OleDbConnection(connStr)
        Dim banco As String = "C:\\dados.mdb"
        Dim connStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & banco & ";"
        Dim table As String = "tabela"
    
        Private Sub exemplo()
            Dim conn As OleDbConnection = New OleDbConnection(connStr)
            Dim dataSet As New DataSet
            Dim query As String = "SELECT * FROM " & table
            Dim cmd As New OleDbCommand(query, conn)
            Dim adapter As New OleDbDataAdapter(cmd)
    
            conn.Open()
            adapter.Fill(dataSet, table)
            conn.Close()
    
            Dim dataTable As DataTable = dataSet.Tables(table)
    
            For Each row In dataTable.Rows
                  If row(0) = "campo1" And row(1) = "" Then
                    MsgBox("Campo vazio")
                End If
            Next
        End Sub

    Como faço para isso não ocorrer? Obrigado.

    domingo, 30 de agosto de 2015 15:11

Respostas

  • Olá Free4k, você pode utilizar a função IsDBNull para evitar esse tipo de problema.
    • Marcado como Resposta Free4k quarta-feira, 2 de setembro de 2015 13:14
    quarta-feira, 2 de setembro de 2015 02:49
  • Muito obrigado Guilherme, funcionou perfeitamente.

    If DBNull.Value.Equals(row(1)) = False Then
    
    End If



    • Marcado como Resposta Free4k quarta-feira, 2 de setembro de 2015 13:15
    • Editado Free4k quarta-feira, 2 de setembro de 2015 13:16
    quarta-feira, 2 de setembro de 2015 13:15

Todas as Respostas

  • Olá Free4k,

    Tudo bem?

    Há alguma outra informação que o erro traga?

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 31 de agosto de 2015 14:28
  • Boas,

    Tente assim: 

        If row(0) == "campo1" And row(1) == "" Then
    Atenciosamente, Roberto Alves
    • Marcado como Resposta Marcos SJ segunda-feira, 31 de agosto de 2015 16:40
    • Não Marcado como Resposta Free4k segunda-feira, 31 de agosto de 2015 16:55
    segunda-feira, 31 de agosto de 2015 16:39
  • Amigo, é Visual Basic.
    segunda-feira, 31 de agosto de 2015 16:55
  • Todas as informações aqui:

    Obrigado.

    segunda-feira, 31 de agosto de 2015 16:59
  • Olá Free4k, você pode utilizar a função IsDBNull para evitar esse tipo de problema.
    • Marcado como Resposta Free4k quarta-feira, 2 de setembro de 2015 13:14
    quarta-feira, 2 de setembro de 2015 02:49
  • Muito obrigado Guilherme, funcionou perfeitamente.

    If DBNull.Value.Equals(row(1)) = False Then
    
    End If



    • Marcado como Resposta Free4k quarta-feira, 2 de setembro de 2015 13:15
    • Editado Free4k quarta-feira, 2 de setembro de 2015 13:16
    quarta-feira, 2 de setembro de 2015 13:15