Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal tenho um programinha de cadastro e estou usando BD ACCESS, estou com um probleminha e não estou conseguindo resolver.
Num form tenho uma barra com os botões (incluir, salvar, excluir, cancelar e fechar), o problema esta ocorrendo quando excluso um registro e logo depois tento adicionar um outro registro recebo a informação que o o numero do ID já esta em uso, mas ao abrir a tabela o registro foi realmente excluido.
Segue os códigos dos botões excluir e incluir.
Código do botão de numeração que gera o numero para a coluna ID.
<div class='codetop'>CODE</div><div class='codemain' style='height:300px;white-space:pre;overflow-y:auto'>
Private Function ProximoNumero() As Integer
cn.Open()
Dim sql As String = "Select (Max(ID)) From tblpr"
Dim Lin As OleDbCommand = cn.CreateCommand
Lin.CommandText = sql
Dim dr As OleDbDataReader
Dim cod As Integer
Dim result As Long
dr = Lin.ExecuteReader
While dr.Read()
cod = dr.GetInt32(0) + 1
result = cod
ProximoNumero = result
End While
dr.Close()
cn.Close()
End Function</div>
Código do Botão Incluir
<div class='codetop'>CODE</div><div class='codemain' style='height:300px;white-space:pre;overflow-y:auto'>
Case 0 ' Incluir
' AÇÃO DO BOTÃO Incluir
'Botões da Barra de Ferramentas
Incluir.Enabled = False
Alterar.Enabled = False
Gravar.Visible = True
Gravar.Enabled = True
Salvar.Visible = False
Cancelar.Enabled = True
Excluir.Enabled = False
Fechar.Enabled = True
'Vai para a pagina de Dados Pessoais
TabControl1.SelectedTab = TabPage1
'limpa os controles
EditID.Visible = True
Label1.Visible = True
EditID.DataBindings.Clear()
EditID.Text = ""
Me.EditID.Text = ProximoNumero()
EditNome.Text = ""
EditEndereco.Text = ""
EditBairro.Text = ""
EditCidade.Text = ""
EditCep.Text = ""
EditEmail.Text = ""
EditTelefone.Text = ""
EditCelular.Text = ""
EditCPF.Text = ""
cboEstado.DisplayMember = "--Selecione--"
EditNome.Focus.ToString()
btnFoto.Visible = False
GroupBox2.Visible = False</div>
Código do botão Excluir
<div class='codetop'>CODE</div><div class='codemain' style='height:300px;white-space:pre;overflow-y:auto'>Case 5 'Excluir
Dim Result As DialogResult
result = MessageBox.Show("Deseja excluir o : " + EditNome.Text, "Exclusão", MessageBoxButtons.YesNo)
If result = DialogResult.Yes Then
cn.Open()
Dim Cm As New OleDb.OleDbCommand("Delete * from tblpr Where ID=" + EditID.Text, cn)
Cm.ExecuteNonQuery()
Cm.Dispose()
MessageBox.Show("Excluído com Sucesso", "Exclusão", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
'Fecha a Conexão
cn.Close()
'Limpa os campos
EditID.Text = ""
EditNome.Text = ""
EditEndereco.Text = ""
EditBairro.Text = ""
EditCidade.Text = ""
EditCep.Text = ""
EditEmail.Text = ""
EditTelefone.Text = ""
EditCelular.Text = ""
EditCPF.Text = ""
'Ativa e desativa os botões
Incluir.Enabled = True
Alterar.Enabled = True
Gravar.Enabled = False
Gravar.Visible = False
Salvar.Visible = False
Salvar.Enabled = False
Cancelar.Enabled = False
Excluir.Enabled = False
Fechar.Enabled = True
'Vai para a pagina de pesquisa
TabControl1.SelectedTab = TabPage2
'Carrega novamente o datagrid
carregarpr()
Else
EditNome.Focus.ToString()
End If
</div>
Se continuo com o form aberto e tento incluir um novo registro ao clicar no botão salvar informa que o numero do ID já existe e não consigo gravar, mas olho na tabela e o registro foi excluido.
Segue o Código de GRavar
<div class='codetop'>CODE</div><div class='codemain' style='height:300px;white-space:pre;overflow-y:auto'>cn.Open()
Dim dat2 As OleDbDataAdapter
Dim ds2 As DataSet
Dim myLin As OleDbCommand = cn.CreateCommand()
Dim myCB As String = "select count(*) from tblpr where cpf=@col"
myLin.CommandText = myCB
myLin.Parameters.Add("@col", SqlDbType.NVarChar).Value = EditCPF.Text.Trim
dat2 = New OleDbDataAdapter(myLin)
ds2 = New DataSet
dat2.SelectCommand = myLin
Dim dr1 As OleDbDataReader
Dim resultado As Object = myLin.ExecuteScalar
If Not resultado Is Nothing AndAlso Convert.ToInt32(resultado) > 0 Then
MessageBox.Show("Usuario já cadastrado!!!Favor verificar o CPF!!!", "Cadastro", MessageBoxButtons.OK, MessageBoxIcon.Information)
EditCPF.Focus()
Else
If ValidaCPF(EditCPF.Text) = True Then
Dim DA1 = New OleDbDataAdapter("select * from tblpr", cn)
Dim cb As New OleDbCommandBuilder
cb = New OleDbCommandBuilder(DA1)
Dim ds1 = New DataSet
DA1.Fill(PrDS11, "tblpr")
Dim drAux As DataRow
drAux = PrDS11.Tables("tblpr").NewRow
drAux("ID") = EditID.Text
drAux("nome") = EditNome.Text
drAux("Endereco") = EditEndereco.Text
drAux("Bairro") = EditBairro.Text
drAux("Cidade") = EditCidade.Text
drAux("UF") = cboEstado.SelectedItem
drAux("CEP") = EditCep.Text
drAux("email") = EditEmail.Text
drAux("tel") = EditTelefone.Text
drAux("celular") = EditCelular.Text
drAux("cpf") = EditCPF.Text
PrDS11.Tables("tblpr").Rows.Add(drAux)
OleDbDataAdapter1.Update(PrDS11)
PrDS11.AcceptChanges()
Else
'Messagem de cadastramento
TabControl1.SelectedTab = TabPage2
carregarpr()
'Ativa e desativa botões da barra de botões
Incluir.Enabled = True
Alterar.Enabled = True
Gravar.Enabled = False
Gravar.Visible = False
Salvar.Visible = False
Salvar.Enabled = False
Cancelar.Enabled = False
Excluir.Enabled = False
Fechar.Enabled = True
End If
Else
MessageBox.Show("CPF INVÁLIDO", "Erro no CPF", MessageBoxButtons.OK, MessageBoxIcon.Error)
EditCPF.Focus()
End If
cn.close
</div>
Carregando comentários...