none
Null reference em variável somente leitura de um datatable RRS feed

  • Pergunta

  • Salve Pessoal!!

     

    Está ocorrendo a exception Null Reference nas linhas destacadas em laranja.

    Gostaria de acertar para que a variável drAccess_Membros(0).ToString não acuse o seguinte no editor de código: Variável 'drAccess_Membros' é usada antes de ser assinalado um valor. Uma Null Reference Exception pode acontecer em runtime.

     

    OBS.: Essa variavel é de um datatable e não pode ser editada/escrita (ela é somente leitura) e nao sei o que posso fazer para que nao aconteça a exception relatada.

     

    Code Snippet

    'BASE DO ACCESS

    Dim A_migrar_Membros As New OleDbCommand("SELECT C¢dDeslig, CodContrib, C¢dN£cleo, DtIngres, C¢dIngre, Coment rios, DtDeslig FROM(TblMembro) WHERE (C¢dMembro = @PE_Antigo_SQL)", connAccess_Membros)

     

    A_migrar_Membros.Parameters.AddWithValue("@PE_Antigo_SQL", drSQL_Membros(1))

     

    Dim daAccess_Membros As New OleDbDataAdapter(A_migrar_Membros)

    Dim dsSetAccess_Membros As New DataSet

     

    'preenche o dataset

    daAccess_Membros.Fill(dsSetAccess_Membros, "TblMembro")

     

    Dim drAccess_Membros As DataRow - SE ATRIBUIR NOTHING OCORRE EXCEPTION TB, O Q FAZER?

     

    If dsSetAccess_Membros.Tables(0).Rows.Count > 0 Then

     

    QtdReg_Membros_Access += 1

     

    Dim PE_PS_ID As Integer = Nothing

     

    Select Case drAccess_Membros(0).ToString

    Case Nothing

    PE_PS_ID = 1

    Case 1

    PE_PS_ID = 2

    Case 2

    PE_PS_ID = 3

    Case 3, 8, 9, 10, 11, 12

    PE_PS_ID = 4

    Case 5, 6, 7

    PE_PS_ID = 5

    End Select

     

     

     

    Aguardo Ajuda.

     

    terça-feira, 2 de dezembro de 2008 18:32

Respostas

  • Olá Magno,

     

    Acho que você está fazendo confusão com o nome da variável... Veja, você não está atribuindo qualquer valor ou objeto à essa variável drAccess_Membros... Como você espera conseguir obter o valor dela?

     

    O .NET não tem como saber o que você quer, apenas pelo nome da variável Big Smile (pelo menos ainda não chegou esse dia).

     

    Não sei exatamente o que você está tentando fazer, mas supondo que você quer ler a primeira linha do seu DataTable, você precisa obter uma referência para essa linha e aí sim, utilizar a variável drAccess_Membros. Algo como:

     

    Code Snippet

     

     Dim drAccess_Membros As DataRow

     

     If dsSetAccess_Membros.Tables(0).Rows.Count > 0 Then

     

    drAccess_Membros = dsSetAccess_Membros.Tables(0).Rows(0)

     

    QtdReg_Membros_Access += 1

     

    '...

     End If

     

     

    Abraços,
    Caio Proiete




    Caio Proiete
    http://www.caioproiete.com
    terça-feira, 2 de dezembro de 2008 18:45
    Moderador