Avatar billede mick Nybegynder
26. juli 2006 - 11:25 Der er 6 kommentarer og
1 løsning

Læse/skrive til en Access database

Er der nogen som kan hjælpe mig med et enkelt eksempel på hvordan man opretter en forbindelse til en Access database, tilføjer et par poster til en tabel og lukker forbindelsen igen.

Det er muligt vha. at oprette en ny data source i Visual Studio og bruge TableAdapter og andre fancy funktioner, men det må da også være muligt at gøre det med ren VB kode eller?
Avatar billede torotune Nybegynder
26. juli 2006 - 11:51 #1
Et meget enkelt eksempel:

<%@ Page Language="VB" Debug="true" %>
<%@ import Namespace="System.data" %>
<%@ import Namespace="System.data.OLEdb" %>
<script runat="server">

    Sub btnSend_Click(sender As Object, e As EventArgs)       
        Dim strConn As String
                Dim objConn As OleDbConnection
                Dim objComm As OleDbCommand 
        Dim sql as string            
        Dim objDataReader As OleDbDataReader
       
        strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.Mappath("App_Data\dindatabase.MDB") & ";"
        objConn = New OleDbConnection(strConn)
       
          SQL = "INSERT INTO DinTabel VALUES(#" & Date.now() & "#, '" & TextBox1.text & "');"
   
            objComm = New OLEDBcommand(SQL, objConn)
            objComm.ExecuteNonQuery()   
            objConn.Close()                       
    End Sub
Avatar billede torotune Nybegynder
26. juli 2006 - 11:54 #2
'DinTabel' i din database skal så have to felter, det første af datatypen "dato/klokkeslet", det næste felt 'tekst' eller 'kommentar'

I din form skal du så have en tekstbox med id'et 'TextBox1' og en Button med med click-eventet 'btnSend_Click' :-)
Avatar billede mick Nybegynder
26. juli 2006 - 12:56 #3
Tak for svar.

Jeg har tilpasset koden lidt:
strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Database1.mdb;"
objConn = New OleDbConnection(strConn)

sql = "INSERT INTO tabel (A, B) VALUES ('xyz', 'abc')"

objComm = New OleDbCommand(sql, objConn)
objComm.ExecuteNonQuery()
objConn.Close()

Når jeg kører koden får jeg en fejlmelding om at ExecuteNonQuery() ikke har en åben eller tilgængelig tilkobling til databasen. Det kommer sikkert af en fejl i denne linie, da jeg får samme fejlmelding uanset om filen "data source" peger til, eksisterer eller ikke:

strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Database1.mdb;"

Nogen tips?
Avatar billede helmet Nybegynder
26. juli 2006 - 14:37 #4
objConn.Open() mangler vel
Avatar billede torotune Nybegynder
26. juli 2006 - 15:47 #5
Jep, den havde jeg glemt.

objConn.Open()

Den skal komme lige under din SQl-sætning :-)
Avatar billede mick Nybegynder
26. juli 2006 - 15:54 #6
Takker, nu fungerer det.

Kom med et svar så får i poengene.
Avatar billede torotune Nybegynder
01. august 2006 - 19:35 #7
Godt det virkede. Der er et her. - Husk at kigge lidt på parameters ved indsættelse i database på den måde der som ovenstående :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester