[Resolvido] Função Excluir em um grid
Função Excluir em uma Tabela
olá galera.
bem estou com um problema na hora de excluir os dados de uma linha da tabela.
situação:
tenho uma tabela de classes de almoxarifado. fiz o excluir. mas quando aperto o botao excluir ele pergunta se deseja excluir realmente se aperta sim ele exclui. ateh ae perfeito! mas depois de excluir ele gera uma mensagem de erro e em seguida o sistema continua normnal e o efeito desejado obtem sucesso.
mas não queria esta msg de erro aparecendo. e nao consigo soluciona-la
eis a msg:
system.nullReferenceException: object reference not set to an instance of an object.
eis o codigo:
Na classe da tabela:
Public Sub Excluir()
Dim strQuery As New StringBuilder
strQuery.Append(" DELETE FROM " & _Tabela & " ")
strQuery.Append(" WHERE Id = " & _Id & " ")
Try
cldBancoDados.ExecuteNonQuery(My.Settings("Conexãobd"), CommandType.Text, strQuery.ToString, Nothing)
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End Sub
no form da tabela
Public Sub tsbExcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsbExcluir.Click
Dim j As Integer
Dim IdLocal As Integer
If dgv.Rows.Count <= 0 Then
MessageBox.Show("Grade não tem registro para ser excluído", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
Exit Sub
Else
If dgv.SelectedRows.Count = 0 Then
MessageBox.Show("Grade não tem registro selecionado para ser excluído", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
Exit Sub
Else
If (MessageBox.Show("Registros selecionados serão excluídos" & Chr(13) & "Confirma?", Me.Text, MessageBoxButtons.YesNo, _
MessageBoxIcon.Question) = Windows.Forms.DialogResult.No) Then
Exit Sub
Else
For j = 0 To dgv.SelectedRows.Count - 1
IdLocal = dgv.SelectedRows(j).Cells("id").Value
Dim cldTabela1 As New cldTabela1
cldTabela1.Tabela = _Tabela
cldTabela1.Id = IdLocal
If cldTabela1.EmUso Then
MessageBox.Show("Essa descrição está sendo usada na tabela de produtos" & Chr(13) & _
"E não pode ser excluída" & Chr(13) & Chr(13) & _
"Voce pode marcar esse item", "Exclusão", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Exit Sub
End If
cldTabela1.Excluir()
Next
CarregaGrid()
PosicionaGrid()
End If
End If
End If
End Sube o EMUSO que serve para checar se estah em uso ou nao o item antes de excluir
Public Function EmUso() As Boolean
Dim strQuery As New StringBuilder
strQuery.Append("SELECT Id FROM Produtos ")
If _Tabela = "Classes" Then
strQuery.Append("WHERE idClasses = " & _Id & " ")
Else
strQuery.Append("WHERE idUnidades = " & _Id & " ")
End If
EmUso = False
Try
Dim Identificacao As String = ""
Identificacao = cldBancoDados.ExecuteScalar(My.Settings("Conexãobd"), CommandType.Text, strQuery.ToString, Nothing)
If Not IsNothing(Identificacao) And Identificacao.Length > 0 Then EmUso = True
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End Functiongrande abraço
rafa[]
Discussão (3)
Carregando comentários...