Jump to content

Ler,escrever e eliminar dados numa bd em access.


sergiopereira58
 Share

Recommended Posts

Boas,

Pretendo fazer uma pequena aplicação para registar dados, ler e eliminar numa bd em access 2003. Andei à procura vi alguns post's como escrever numa bd mas não consegui aplicar. Se me puderem dar umas luzes, agradecia.

Em relação à aplicação, estava a pensar em ter umas TextBox's para inserir o texto a registar nos vários campos da bd, e uma datagridview para apresentar os dados após uma pesquisa.

Algumas questões:

1) Uma vez que para ler os dados podemos utilizar o DataReader, penso que para registar os dados deva utilizar DataWrite? Ou o DataAdapter?? A questão mesmo é como escrever os dados num novo registo no access. Como ainda só utilizei o DataReader, preciso que me digam como faço para escrever os dados e se tiverem um exemplo melhor ainda.

2) Para carregar os dados no DataGridView posso utilizar o datareader? Se sim, já sei como funciona. Se não, como faço?

3) Ao ler os dados e ao apresenta-los no DataGridView, como faço para seleccionar uma linha e clicando num botão eliminar esse registo na bd?

Obrigado e cumprimentos,

Sérgio

Link to comment
Share on other sites

Todas essas questões já foram respondidas inúmeras vezes aqui no fórum, quanto mais no google..

Faz uma search simples aqui no fórum e vais encontrar dezenas, para não dizer centenas, de posts sobre o que pretendes.

Tenta aplicar os códigos, se não conseguires, diz-nos os erros que te aparecem e aí ajudamos-te. 🙂

Link to comment
Share on other sites

Boas

Se ainda nao tiveres conseguido fazer o que querias, espero que isto te ajude, ...... pelo menos um bocado  🙂

1 - Como tens os dados em textBox's, podes fazer desta maneira

mports System.Data.OleDb
Public Class Form1
Dim ligação As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Directorio_Base_Dados;Persist Security Info=False;"
Private Sub Grava_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Grava.Click
        Dim conecção As New OleDbConnection(ligação)
        'Inserir Dados
        Dim sintaxe As String = "Insert into Nome_Tabela ([Nome], [Morada]) Values (@Nome, @Morada)"
        'Criação do comando indicando a instrução e a ligação
        Dim command As New OleDbCommand(sintaxe, conecção)
        'Indicação dos parametros
        command.Parameters.Add("@Nome", OleDb.OleDbType.VarChar).Value = Nome.Text
        command.Parameters.Add("@Morada", OleDb.OleDbType.VarChar).Value = Morada.Text
        conecção.Open()
        Dim execute2 As String = command.ExecuteScalar()
        conecção.Close()
        sintaxe = Nothing
        conecção = Nothing
End Sub

2 - Eu costumo fazer deste maneira

 Private Sub Consultar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Consultar.Click
        DataGridView1.Rows.Clear()
        Dim conecção As New OleDbConnection(ligação)
        Dim sintaxe As String = "Select * from Dados"
        Dim command As New OleDbCommand(sintaxe, conecção)
        conecção.Open()
        Dim execute As String = command.ExecuteScalar()
        Dim leitor As OleDbDataReader = command.ExecuteReader()
        Dim Req(2) As Object 'Metes o numero de campos que a tua tabela tem. Neste caso 2 (nome e morada)

        If leitor.HasRows Then
            While leitor.Read()
                Req(0) = leitor.Item("Nome")
                Req(1) = leitor.Item("Morada")  'Caso tenhas mais campos, continuas a meter mais Req(2) = leitor...., Req(10)... 

                DataGridView1.Rows.Add(Req)
            End While
        End If
        conecção.Close()
        sintaxe = Nothing
        conecção = Nothing
End Sub

3 - Para seleccionar uma linha e clicando num botão eliminar esse registo na bd, eu criei um botão, e defini-o como Invisível

Public dados As String
'Quando o utilizador, clica numa linha, vai apresentar o botão para apagar, e guarda o valor do primeiro campo, Neste caso, guarda o nome

Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
        Elimina.Visible = True
        dados = DataGridView1.Rows(e.RowIndex).Cells(0).Value
End Sub

Private Sub Elimina_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Elimina.Click
        Dim conecção As New OleDbConnection(ligação)
        Dim sintaxe As String = "Delete from Nome_Tabela where Nome = @Nome"
        Dim command As New OleDbCommand(sintaxe, conecção)
       command.Parameters.Add("@Nome", OleDb.OleDbType.VarChar).Value = dados
        conecção.Open()
        Dim execute As String = command.ExecuteScalar()
        conecção.Close()
        sintaxe = Nothing
        Elimina.Visible = False

        '' Actualizar os dados do Data Grid
        DataGridView1.Rows.Clear()
        Dim sintaxe2 As String = "Select * from Nome_Tabela"
        Dim command2 As New OleDbCommand(sintaxe2, conecção)
        conecção.Open()
        Dim execute2 As String = command2.ExecuteScalar()
        Dim leitor As OleDbDataReader = command2.ExecuteReader()
        Dim Req(2) As Object
        If leitor.HasRows Then
            While leitor.Read()
                Req(0) = leitor.Item("Nome")
                Req(1) = leitor.Item("Morada")
                DataGridView1.Rows.Add(Req)
            End While
        End If
        conecção.Close()
        sintaxe2 = Nothing
        conecção = Nothing
End Sub

Podes também consultar:

VB.NET: Gestão de Dados em SQL Server, by Jorge Paulino

http://vbtuga.blogspot.com/2008/04/vbnet-gesto-de-dados-em-sql-server.html - Parte I

http://vbtuga.blogspot.com/2008/04/vbnet-gesto-de-dados-em-sql-server_16.html - Parte II

A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.