none
A referência de objecto não foi definida como uma instância de um objecto. RRS feed

  • Pergunta

  • Olá

    Sou novo a trabalhar com Visual Basic, tenho um projecto para a universidade para entregar...

    Este é o código que tenho, e quando corro o programa não aparece nenhum erro, mas quando acabo de preencher o formulário o programa deixa de funcionar e aparece o erro "A referência de objecto não foi definida como uma instância de um objecto." na linha marcada no código..

    Private Sub Submeter_Click(sender As Object, e As EventArgs) Handles Submeter.Click
            Dim user As New Utilizador
            Dim utilizadores = db.GetTable(Of Utilizador)()
    
    
            If (ShortIDTextBox.Text = "") Then
                MessageBox.Show("É necessário inserir um Username.", "Utilizador", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            ElseIf (TextBox1.Text = "") Then
                MessageBox.Show("É necessário inserir um Nome.", "Utilizador", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            ElseIf (MoradaTextBox.Text = "") Then
                MessageBox.Show("É necessário inserir uma morada.", "Utilizador", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            ElseIf (PrefixoComboBox.SelectedItem = "") Then
                MessageBox.Show("É necessário inserir um Prefixo.", "Utilizador", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            ElseIf ((EmailTextBox.Text = "") And (TeleTextBox.Text = "")) Then
                MessageBox.Show("É necessário inserir um email ou telefone.", "Utilizador", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            Else
                Dim query = (From Utilizador In utilizadores Where Utilizador.ShortID = ShortIDTextBox.Text Select Utilizador)
    
                If (query.Count <> 0) Then
                    MessageBox.Show("Já existe um username igual.", "Utilizador", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Else
                    user.Nome = TextBox1.Text
    
                    user.morada = MoradaTextBox.Text
    
                    user.Prefixo = PrefixoComboBox.SelectedItem
    
                    -> user.Email.email = EmailTextBox.Text
    
                    user.Telefone.Telefone = TeleTextBox.Text
    
                    user.ShortID = ShortIDTextBox.Text
    
                    If PrefixoComboBox.SelectedItem.ToString() = "PD" Then
                        user.prioridadeCorrente = 1
                    End If
                    If PrefixoComboBox.SelectedItem.ToString() = "PR" Then
                        user.prioridadeCorrente = 2
                    End If
                    If PrefixoComboBox.SelectedItem.ToString() = "RS" Then
                        user.prioridadeCorrente = 3
                    End If
                    If PrefixoComboBox.SelectedItem.ToString() = "BS" Then
                        user.prioridadeCorrente = 3
                    End If
                    If PrefixoComboBox.SelectedItem.ToString() = "MS" Then
                        user.prioridadeCorrente = 3
                    End If
                    If PrefixoComboBox.SelectedItem.ToString() = "DS" Then
                        user.prioridadeCorrente = 3
                    End If
                    If PrefixoComboBox.SelectedItem.ToString() = "SF" Then
                        user.prioridadeCorrente = 3
                    End If
                    If PrefixoComboBox.SelectedItem.ToString() = "XT" Then
                        user.prioridadeCorrente = 3
                    End If
    
    
                    utilizadores.InsertOnSubmit(user)
                    db.SubmitChanges()
                    Form2.utilizador = user
                End If
    
                Form2.Show()
                Me.Hide()
            End If
    
        End Sub

    É necessário inserir algum tipo de verificação tipo try..catch?

    Obrigado 

    quinta-feira, 2 de janeiro de 2014 15:11

Respostas

  • Olá Gonçalo!

    Na verdade você não inicializou alguns do objeto que você está usando

    ex:

    Dim rex As New Cachorro

    Espero ter ajudado


    quinta-feira, 2 de janeiro de 2014 16:06
  • Olá,

    Olhando rapidamente seu código posso dizer que o objeto Email da sua classe Utilizador não foi instanciado, ou seja, é nulo. Ou o objeto email da propriedade Email é que não foi instanciado...

    É algo do tipo. Algum objeto não foi instanciado.


    Herbert Lausmann

    • Marcado como Resposta Giovani Cr quinta-feira, 2 de janeiro de 2014 18:56
    quinta-feira, 2 de janeiro de 2014 16:24

Todas as Respostas

  • Olá Gonçalo!

    Na verdade você não inicializou alguns do objeto que você está usando

    ex:

    Dim rex As New Cachorro

    Espero ter ajudado


    quinta-feira, 2 de janeiro de 2014 16:06
  • Olá,

    Olhando rapidamente seu código posso dizer que o objeto Email da sua classe Utilizador não foi instanciado, ou seja, é nulo. Ou o objeto email da propriedade Email é que não foi instanciado...

    É algo do tipo. Algum objeto não foi instanciado.


    Herbert Lausmann

    • Marcado como Resposta Giovani Cr quinta-feira, 2 de janeiro de 2014 18:56
    quinta-feira, 2 de janeiro de 2014 16:24