EXCLUIR DADOS E ALTERAR
ola pessoal fiz duas funçoes, excluir e alterar, antes de ter salvo e fechado o projecto estava tudo otimo, mas depois quando abri novamente da dois avisos.
1º aviso
Variable [ô]excluirbd[ô] is used before it has been assigned a value. A null reference exception could result at runtime. E:\PRGTIAL\TIAL\TIAL\Cadastro.vb 58 16 TIAL
2º aviso
Variable [ô]alteraregbd[ô] is used before it has been assigned a value. A null reference exception could result at runtime. E:\PRGTIAL\TIAL\TIAL\Cadastro.vb 100 16 TIAL
na função excluir coloquei da seguinte forma:
Function excluirbd(ByVal identificador As Integer) As Boolean
Dim sqlexcluir As String = [Ô]Delete from TBUsuario where Registo = [Ô] & identificador
Dim conexcluir As New SqlConnection(strconcad)
Dim comandoexcluir As New SqlCommand(sqlexcluir, conexcluir)
Try
conexcluir.Open()
comandoexcluir.ExecuteNonQuery()
Catch ex As SqlException
MessageBox.Show(ex.Message, ex.Number.ToString)
Finally
conexcluir.Close()
End Try
Return excluirbd
End Function
no botao excluir coloquei assim:
Private Sub cmdexcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdexcluir.Click
[ô]verifica se o não foi localizado nenhum registo antes da alteração
If txtreg.Text = [Ô][Ô] Then
MsgBox([Ô]Para excluir, é necessário localizar um registo antes[Ô], vbInformation, [Ô]Erro excluir...[Ô])
Else
conexaodados.excluirbd(txtreg.Text)
MessageBox.Show([Ô]Utilizador excluÃdo com sucesso[Ô])
End If
End Sub
na função alterar:
Function alteraregbd(ByVal identificador As Integer, ByVal Nome As String, ByVal Senha As String, ByVal confsenha As String, ByVal incluir As String, ByVal novo As String, ByVal excluir As String, ByVal salvar As String, ByVal alterar As String, ByVal pesquisar As String, ByVal utilizador As String, ByVal datainclusao As String) As Boolean
Dim sqlalterar As String = [Ô]update tbusuario set Nome = @Nome, senha = @Senha, confsenha = @confsenha,incluir = @incluir, novo = @novo, excluir = @excluir, salvar = @salvar, alterar = @alterar, pesquisar = @pesquisar,utilizador = @utilizador,datainclusao = @datainclusao where registo = @identificador[Ô]
Dim conalterar As New SqlConnection(strconcad)
Dim comandoalterar As New SqlCommand(sqlalterar, conalterar)
comandoalterar.Parameters.Add([Ô]@Nome[Ô], SqlDbType.VarChar, 25)
comandoalterar.Parameters([Ô]@Nome[Ô]).Value = Nome
comandoalterar.Parameters.Add([Ô]@Senha[Ô], SqlDbType.VarChar, 25)
comandoalterar.Parameters([Ô]@Senha[Ô]).Value = Senha
comandoalterar.Parameters.Add([Ô]@confsenha[Ô], SqlDbType.VarChar, 25)
comandoalterar.Parameters([Ô]@confsenha[Ô]).Value = confsenha
comandoalterar.Parameters.Add([Ô]@incluir[Ô], SqlDbType.Bit)
comandoalterar.Parameters([Ô]@incluir[Ô]).Value = incluir
comandoalterar.Parameters.Add([Ô]@novo[Ô], SqlDbType.Bit)
comandoalterar.Parameters([Ô]@novo[Ô]).Value = novo
comandoalterar.Parameters.Add([Ô]@excluir[Ô], SqlDbType.Bit)
comandoalterar.Parameters([Ô]@excluir[Ô]).Value = excluir
comandoalterar.Parameters.Add([Ô]@salvar[Ô], SqlDbType.Bit)
comandoalterar.Parameters([Ô]@salvar[Ô]).Value = salvar
comandoalterar.Parameters.Add([Ô]@alterar[Ô], SqlDbType.Bit)
comandoalterar.Parameters([Ô]@alterar[Ô]).Value = alterar
comandoalterar.Parameters.Add([Ô]@pesquisar[Ô], SqlDbType.Bit)
comandoalterar.Parameters([Ô]@pesquisar[Ô]).Value = pesquisar
comandoalterar.Parameters.Add([Ô]@utilizador[Ô], SqlDbType.Char, 10)
comandoalterar.Parameters([Ô]@utilizador[Ô]).Value = utilizador
comandoalterar.Parameters.Add([Ô]@datainclusao[Ô], SqlDbType.Char, 10)
comandoalterar.Parameters([Ô]@datainclusao[Ô]).Value = datainclusao
comandoalterar.Parameters.Add([Ô]@identificador[Ô], SqlDbType.Int)
comandoalterar.Parameters([Ô]@identificador[Ô]).Value = identificador
Try
conalterar.Open()
comandoalterar.ExecuteNonQuery()
Catch ex As SqlException
MessageBox.Show(ex.Message, ex.Number.ToString)
Finally
conalterar.Close()
End Try
Return alteraregbd
End Function
no botão alterar:
Private Sub cmdalterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdalterar.Click
[ô]verifica se o não foi localizado nenhum registo antes da alteração
Dim alterou As Boolean
If txtreg.Text = [Ô][Ô] Then
MsgBox([Ô]Para alterar, é necessário localizar um registo antes[Ô], vbInformation, [Ô]Erro excluir...[Ô])
Else
Dim vdata As String
vdata = Format(Today, [Ô]dd/MM/yyyy[Ô])
alterou = conexaodados.alteraregbd(txtreg.Text, txtusuario.Text, txtsenha.Text, txtconfsenha.Text, CheckBox2.Enabled, CheckBox2.Enabled, CheckBox3.Enabled, CheckBox4.Enabled, CheckBox5.Enabled, CheckBox6.Enabled, registo1, vdata)
If alterou = True Then
MessageBox.Show([Ô]Utilizador alterado com sucesso[Ô])
Else
MessageBox.Show([Ô]Erro ao alterar[Ô])
End If
End If
End Sub
o que tenho de errado? como corrigir? desde ja agradeço a todos pelo apoio.
1º aviso
Variable [ô]excluirbd[ô] is used before it has been assigned a value. A null reference exception could result at runtime. E:\PRGTIAL\TIAL\TIAL\Cadastro.vb 58 16 TIAL
2º aviso
Variable [ô]alteraregbd[ô] is used before it has been assigned a value. A null reference exception could result at runtime. E:\PRGTIAL\TIAL\TIAL\Cadastro.vb 100 16 TIAL
na função excluir coloquei da seguinte forma:
Function excluirbd(ByVal identificador As Integer) As Boolean
Dim sqlexcluir As String = [Ô]Delete from TBUsuario where Registo = [Ô] & identificador
Dim conexcluir As New SqlConnection(strconcad)
Dim comandoexcluir As New SqlCommand(sqlexcluir, conexcluir)
Try
conexcluir.Open()
comandoexcluir.ExecuteNonQuery()
Catch ex As SqlException
MessageBox.Show(ex.Message, ex.Number.ToString)
Finally
conexcluir.Close()
End Try
Return excluirbd
End Function
no botao excluir coloquei assim:
Private Sub cmdexcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdexcluir.Click
[ô]verifica se o não foi localizado nenhum registo antes da alteração
If txtreg.Text = [Ô][Ô] Then
MsgBox([Ô]Para excluir, é necessário localizar um registo antes[Ô], vbInformation, [Ô]Erro excluir...[Ô])
Else
conexaodados.excluirbd(txtreg.Text)
MessageBox.Show([Ô]Utilizador excluÃdo com sucesso[Ô])
End If
End Sub
na função alterar:
Function alteraregbd(ByVal identificador As Integer, ByVal Nome As String, ByVal Senha As String, ByVal confsenha As String, ByVal incluir As String, ByVal novo As String, ByVal excluir As String, ByVal salvar As String, ByVal alterar As String, ByVal pesquisar As String, ByVal utilizador As String, ByVal datainclusao As String) As Boolean
Dim sqlalterar As String = [Ô]update tbusuario set Nome = @Nome, senha = @Senha, confsenha = @confsenha,incluir = @incluir, novo = @novo, excluir = @excluir, salvar = @salvar, alterar = @alterar, pesquisar = @pesquisar,utilizador = @utilizador,datainclusao = @datainclusao where registo = @identificador[Ô]
Dim conalterar As New SqlConnection(strconcad)
Dim comandoalterar As New SqlCommand(sqlalterar, conalterar)
comandoalterar.Parameters.Add([Ô]@Nome[Ô], SqlDbType.VarChar, 25)
comandoalterar.Parameters([Ô]@Nome[Ô]).Value = Nome
comandoalterar.Parameters.Add([Ô]@Senha[Ô], SqlDbType.VarChar, 25)
comandoalterar.Parameters([Ô]@Senha[Ô]).Value = Senha
comandoalterar.Parameters.Add([Ô]@confsenha[Ô], SqlDbType.VarChar, 25)
comandoalterar.Parameters([Ô]@confsenha[Ô]).Value = confsenha
comandoalterar.Parameters.Add([Ô]@incluir[Ô], SqlDbType.Bit)
comandoalterar.Parameters([Ô]@incluir[Ô]).Value = incluir
comandoalterar.Parameters.Add([Ô]@novo[Ô], SqlDbType.Bit)
comandoalterar.Parameters([Ô]@novo[Ô]).Value = novo
comandoalterar.Parameters.Add([Ô]@excluir[Ô], SqlDbType.Bit)
comandoalterar.Parameters([Ô]@excluir[Ô]).Value = excluir
comandoalterar.Parameters.Add([Ô]@salvar[Ô], SqlDbType.Bit)
comandoalterar.Parameters([Ô]@salvar[Ô]).Value = salvar
comandoalterar.Parameters.Add([Ô]@alterar[Ô], SqlDbType.Bit)
comandoalterar.Parameters([Ô]@alterar[Ô]).Value = alterar
comandoalterar.Parameters.Add([Ô]@pesquisar[Ô], SqlDbType.Bit)
comandoalterar.Parameters([Ô]@pesquisar[Ô]).Value = pesquisar
comandoalterar.Parameters.Add([Ô]@utilizador[Ô], SqlDbType.Char, 10)
comandoalterar.Parameters([Ô]@utilizador[Ô]).Value = utilizador
comandoalterar.Parameters.Add([Ô]@datainclusao[Ô], SqlDbType.Char, 10)
comandoalterar.Parameters([Ô]@datainclusao[Ô]).Value = datainclusao
comandoalterar.Parameters.Add([Ô]@identificador[Ô], SqlDbType.Int)
comandoalterar.Parameters([Ô]@identificador[Ô]).Value = identificador
Try
conalterar.Open()
comandoalterar.ExecuteNonQuery()
Catch ex As SqlException
MessageBox.Show(ex.Message, ex.Number.ToString)
Finally
conalterar.Close()
End Try
Return alteraregbd
End Function
no botão alterar:
Private Sub cmdalterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdalterar.Click
[ô]verifica se o não foi localizado nenhum registo antes da alteração
Dim alterou As Boolean
If txtreg.Text = [Ô][Ô] Then
MsgBox([Ô]Para alterar, é necessário localizar um registo antes[Ô], vbInformation, [Ô]Erro excluir...[Ô])
Else
Dim vdata As String
vdata = Format(Today, [Ô]dd/MM/yyyy[Ô])
alterou = conexaodados.alteraregbd(txtreg.Text, txtusuario.Text, txtsenha.Text, txtconfsenha.Text, CheckBox2.Enabled, CheckBox2.Enabled, CheckBox3.Enabled, CheckBox4.Enabled, CheckBox5.Enabled, CheckBox6.Enabled, registo1, vdata)
If alterou = True Then
MessageBox.Show([Ô]Utilizador alterado com sucesso[Ô])
Else
MessageBox.Show([Ô]Erro ao alterar[Ô])
End If
End If
End Sub
o que tenho de errado? como corrigir? desde ja agradeço a todos pelo apoio.
Function excluirbd(ByVal identificador As Integer) As Boolean
Dim sqlexcluir As String = [Ô]Delete from TBUsuario where Registo = [Ô] & identificador
Dim conexcluir As New SqlConnection(strconcad)
Dim comandoexcluir As New SqlCommand(sqlexcluir, conexcluir)
Try
conexcluir.Open()
comandoexcluir.ExecuteNonQuery()
Catch ex As SqlException
Return False
MessageBox.Show(ex.Message, ex.Number.ToString)
Finally
conexcluir.Close()
End Try
Return True
End Function
Essa sua função retorna um valor boolean, e vc estava retornando ela sem setar valores para ela, qdo uma função for do tipo boolean ou vc seta um valor para ela e depois retorna ela(já sendo True ou False) ou vc retorna True ou False dependendo do resultado da função.
Para a segunda é a mesma situação.
.....
Try
conalterar.Open()
comandoalterar.ExecuteNonQuery()
Catch ex As SqlException
Return False
MessageBox.Show(ex.Message, ex.Number.ToString)
Finally
conalterar.Close()
End Try
Return True
End Function
Veja se resolve ...
Tópico encerrado , respostas não são mais permitidas