Gå til innhold

Legge til poster i en ACCESS file


Anbefalte innlegg

Heisan

Jeg har laget en enkel ACCESS fil med en tabell Postteder som har feltene ID (tall), Postnr (Tekst) og Poststed (Tekst)

 

Så har jeg satt på et DatagridView og følgende kode i formen:

Imports System.Data.OleDb

Public Class Form1
   Private Command As OleDbCommand
   Private DataAdapter As OleDbDataAdapter
   Dim DataSet As DataSet
   Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Testbase.mdb;User Id=;Password=;"

   Private Sub btnInsert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       'Insert record
       Me.Command = New OleDbCommand("INSERT INTO Poststeder (Postnr, Poststed) VALUES (?, ?)")
       Me.Command.Parameters.Add(New OleDbParameter("@p1", OleDbType.VarChar).Value = Me.txtPostnr.Text)
       Me.Command.Parameters.Add(New OleDbParameter("@p2", OleDbType.VarChar).Value = Me.txtPoststed.Text)

       Me.Command.Connection.Open()
       Me.Command.ExecuteNonQuery()
       Me.Command.Connection.Close()

   End Sub

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Me.Command = New OleDbCommand("SELECT * FROM Poststeder", New OleDbConnection(ConnectionString))
       Me.DataAdapter = New OleDbDataAdapter(Me.Command)
       Me.DataSet = New DataSet
       Me.Command.Connection.Open()
       Me.DataAdapter.Fill(Me.DataSet)
       Me.Command.Connection.Close()
       Me.DataGridView1.DataSource = Me.DataSet.Tables(0).DefaultView

   End Sub

   Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
       Me.Command.Connection.Open()
       Me.DataAdapter.Update(Me.DataSet)
       Me.Command.Connection.Close()
   End Sub
End Class

Koden bak Load fungerer helt perfekt og data kommer frem. Problemet er derimot rutinene for INSERT og UPDATE. Disse feiler. Noen so raskt kan fortelle meg hvorfor?

 

For orden skyld så ligger prosjektet som et vedlegg.

Ole

Databsetest.zip

Endret av HDSoftware
Lenke til kommentar
Videoannonse
Annonse

Ok. Fant svaret selv. Hele situasjonen med OLEDB er bare tull og tøys og helt unødvendig. VB gjør dette helt automatisk og eneste man trenger å skrive er:

 

ValgtTableAdapter.Insert(me.txtPostnr.text, me.txtPoststed.text)

 

Forutsatt at man har laget seg et table adapter så klart, men det er jo også noe VB gjør helt automatisk. Pussig at ingen har nevnt dette før?!?! Jeg kan da huske at jeg har etterspurt nettop dette mange ganger tidligere. Er det virkelig ingen som visste dette?

 

Ole

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...