vasco16 Posted April 25, 2009 at 04:45 PM Report #259044 Posted April 25, 2009 at 04:45 PM Boas pessoal tenho aqui um problema que é o seguinte, quando faço apagar um registo da minha BD na minha aplicação em vb.net através de um botão ele apaga mas só tira o registo quando eu sair da aplicação voltar a entrar, como posso resolver isto?
passado Posted April 25, 2009 at 05:04 PM Report #259046 Posted April 25, 2009 at 05:04 PM Coloca o Codigo para ser mais facil ajudar
vasco16 Posted April 25, 2009 at 05:11 PM Author Report #259047 Posted April 25, 2009 at 05:11 PM O código do load da aplicação é: Private Sub compras_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'tirar barra de minimizar, maximizar e fechar Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None 'conecta com o banco de dados e abre a conexão Dim comprasConnection As OleDb.OleDbConnection = New OleDb.OleDbConnection() comprasConnection = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=stand.mdb;") comprasConnection.Open() 'define um objeto command Dim comprasCommand As OleDb.OleDbCommand = New OleDb.OleDbCommand("SELECT * FROM compras ORDER BY id_processo desc", comprasConnection) 'define um dataAdapter Dim comprasadapter As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter() comprasadapter = New OleDb.OleDbDataAdapter() comprasadapter.SelectCommand = comprasCommand 'define e preenche um DataTable com os dados Dim comprastabela As DataTable comprastabela = New DataTable() comprasadapter.Fill(comprastabela) 'vincula os dados aos controles do formulário id_compraTextBox.DataBindings.Add("Text", comprastabela, "ID_PROCESSO") matriculatextbox.DataBindings.Add("Text", comprastabela, "MATRICULA") marcaTextBox.DataBindings.Add("Text", comprastabela, "MARCA") modeloTextBox.DataBindings.Add("Text", comprastabela, "MODELO") datatextbox.DataBindings.Add("Text", comprastabela, "DATA_MATRICULA") categoriaTextBox.DataBindings.Add("Text", comprastabela, "CATEGORIA") cilindradaTextBox.DataBindings.Add("Text", comprastabela, "CILINDRADA") potenciaTextBox.DataBindings.Add("Text", comprastabela, "POTENCIA") combustivelTextBox.DataBindings.Add("Text", comprastabela, "COMBUSTIVEL") anoTextBox.DataBindings.Add("Text", comprastabela, "ANO") corTextBox.DataBindings.Add("Text", comprastabela, "COR") pesobrutoTextBox.DataBindings.Add("Text", comprastabela, "PESO_BRUTO") lugaresTextBox.DataBindings.Add("Text", comprastabela, "LUGARES") portasTextBox.DataBindings.Add("Text", comprastabela, "PORTAS") kilometrosTextBox.DataBindings.Add("Text", comprastabela, "KMS") cilindrosTextBox.DataBindings.Add("Text", comprastabela, "CILINDROS") localizacaoTextBox.DataBindings.Add("Text", comprastabela, "LOCALIZACAO_STAND") estadoTextBox.DataBindings.Add("Text", comprastabela, "ESTADO") extrasTextBox.DataBindings.Add("Text", comprastabela, "EXTRAS") situacaoTextBox.DataBindings.Add("Text", comprastabela, "SITUACAO") datacompratextbox.DataBindings.Add("Text", comprastabela, "DATA_COMPRA") precovendaTextBox.DataBindings.Add("Text", comprastabela, "PRECO_PREVISTO_DE_VENDA") nomefornecedorTextBox.DataBindings.Add("Text", comprastabela, "NOME_DE_FORNECEDOR") 'estabelece o currencyManager Dim comprascmanager As CurrencyManager comprascmanager = DirectCast(Me.BindingContext(comprastabela), CurrencyManager) End Sub e o codigo do botão apagar é: Private Sub apagar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles apagar.Click 'tipo e caminho da BD Dim iSQLStatus As Integer Dim dbConn As OleDb.OleDbConnection = New OleDb.OleDbConnection() dbConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=stand.mdb;" 'instrução sql Dim strQuery As String = "Delete from compras where MATRICULA = '" & matriculatextbox.Text & "'" Dim dbCmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(strQuery, dbConn) dbConn.Open() Try iSQLStatus = dbCmd.ExecuteNonQuery If iSQLStatus = 0 Then MsgBox("O registo falhou") Else MsgBox("O registo foi apagado com sucesso") End If Catch ex As Exception MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1) End Try dbConn.Close() dbConn = Nothing dbCmd = Nothing End Sub
passado Posted April 25, 2009 at 05:44 PM Report #259052 Posted April 25, 2009 at 05:44 PM no botao apagar experimenta colocar tudo dentro do try
vasco16 Posted April 25, 2009 at 05:46 PM Author Report #259054 Posted April 25, 2009 at 05:46 PM no botao apagar experimenta colocar tudo dentro do try nada, tive a pesquisar um pouco e tenho de fazer refresh á BD mas nao sei como faze-lo..
esquima Posted April 25, 2009 at 06:07 PM Report #259056 Posted April 25, 2009 at 06:07 PM no fim do codigo do apagar chama o load do form compras_Load(sender,e)
vasco16 Posted April 25, 2009 at 06:09 PM Author Report #259057 Posted April 25, 2009 at 06:09 PM no fim do codigo do apagar chama o load do form compras_Load(sender,e) dá erro: "Desta forma, vai vincular à mesma propriedade duas vinculações na colecção. Nome do parâmetro: binding"
esquima Posted April 25, 2009 at 06:15 PM Report #259058 Posted April 25, 2009 at 06:15 PM entao voltas a fazer o select de novo a bd para os teus campos
vasco16 Posted April 25, 2009 at 06:18 PM Author Report #259059 Posted April 25, 2009 at 06:18 PM entao voltas a fazer o select de novo a bd para os teus campos no botao apagar e aseguir ao comando "end try" ?
esquima Posted April 25, 2009 at 06:23 PM Report #259060 Posted April 25, 2009 at 06:23 PM depois disto dbConn.Close() dbConn = Nothing dbCmd = Nothing
esquima Posted April 25, 2009 at 06:26 PM Report #259061 Posted April 25, 2009 at 06:26 PM ja agora nao tens uma propriedade que e teuform.Refresh()
vasco16 Posted April 25, 2009 at 06:29 PM Author Report #259062 Posted April 25, 2009 at 06:29 PM ja agora nao tens uma propriedade que e teuform.Refresh() tentei e nada:S
esquima Posted April 25, 2009 at 06:30 PM Report #259063 Posted April 25, 2009 at 06:30 PM tentei e nada:S qual deles das opcoes e que tentaste
vasco16 Posted April 25, 2009 at 06:44 PM Author Report #259065 Posted April 25, 2009 at 06:44 PM qual deles das opcoes e que tentaste como assim? no form escrevi compras.refresh
esquima Posted April 25, 2009 at 06:52 PM Report #259068 Posted April 25, 2009 at 06:52 PM entao voltas a fazer o select de novo a bd para os teus campos no fim do apagar faz isto
vasco16 Posted April 25, 2009 at 06:56 PM Author Report #259070 Posted April 25, 2009 at 06:56 PM no fim do apagar faz isto vai dar outra vez este erro: "dá erro: "Desta forma, vai vincular à mesma propriedade duas vinculações na colecção. Nome do parâmetro: binding""
esquima Posted April 25, 2009 at 07:01 PM Report #259072 Posted April 25, 2009 at 07:01 PM no fim do apagar mete este bloco de codigo Dim ctl As Control For Each ctl In Me.Controls ctl.Dispose() ctl = Nothing Next InitializeComponent() compras_Load(sender,e)
vasco16 Posted April 25, 2009 at 07:07 PM Author Report #259074 Posted April 25, 2009 at 07:07 PM no fim do apagar mete este bloco de codigo Dim ctl As Control For Each ctl In Me.Controls ctl.Dispose() ctl = Nothing Next InitializeComponent() compras_Load(sender,e) dá para ver que o programa faz um refresh mas os dados continuam visiveis namesma.. será que está em conflito com o load que fiz? é que se carregar três vezes no botao apagar ele apaga-me 3 registos mas mostra-me sempre o ultimo registo.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now