Databashantering IVDatabaskoppling med kod | |
![]() | ![]() |
![]() | |
I stället för att använda Server Explorer och guider för att skapa ett databasprogram, kan man göra allt med kod. Fördelen är att man kan använda variabler i sökvägen till databaser - man är alltså inte låst till en enda databas. Flyttas databasen så fungerar ju inte kopplingen. Antag att vi har samma accessdatabas som tidigare. Först dimensionerar vi en kopplingssträng för sökvägen till databasen, en sträng att skriva SQL-frågan i och ett dataset: Dim Connection As String Lägg ut en Button som får texten Anslut. I den skall vi skriva en del kod. Vi börjar med att skapa en koppling till databasen. Hur skall vi få reda på vad vi skall skriva? I och med att vi har ADO installerad på datorn finns en filtyp som heter Microsoft datalänkar. De är utformade för att innehålla anslutningsinformation till databaser.
Dubbelklicka på filen och samma fönster visas som när vi gjorde en databaskoppling genom Server Explorer. Klicka på fliken Provider och välj Microsoft Jet 4.0 OLE DB Provider. Klicka på Nästa och fliken Anslutning blir synlig. Klicka på knappen med tre prickar och bläddra fram till databasen som vi skall koppla. Klicka på Testa anslutning för att kontrollera att allt fungerar. Om det inte fungerar kan du pröva med att välja en annan Provider. Klicka på OK. Öppna nu udl-filen i till exempel Anteckningar. Vad som står beror på vad som angetts i flikarna, men det ser ut ungefär så här: [oledb] Detta är vad vi skall använda i vår kopplingskod. Koden skriver vi så här: Connection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\VB.Net skola\databashantering\adress.mdb" Vi kan utesluta ";Persist Security Info=False" om vi vill. I sökvägen går det att använda en variabel som tilldelas värde genom till exempel en OpenFileDialog. Antag att en variabel FilePath är deklarerad. Då blir koden: Connection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FilePath & ";Persist Security Info=False" Sedan skall vi göra en SQL-fråga för att välja ut det vi vill ha från databasen. Sql = "select * from personer" Vilket betyder: "Från personer välj allt." Man läser en SQL-fråga från höger till vänster vilket är viktigt att veta om man har mer komplicerade frågor. Sedan dimensionerar vi en ny databaskoppling av typen OleDbConnection och en dataadapter. Dim objConn As New OleDb.OleDbConnection(Connection) Som argument i databaskopplingen anger vi variabeln med vår sökväg: Connection och i dataadaptern vår SQL-fråga och databaskopplingen: Sql, objConn. Nu skall vi öppna databasen och fylla vårt dataset: objConn.Open() Namnet Kontakter blir det namn vi använder när vi senare arbetar med data i vårt dataset. Om vi nu vill komma åt data i datasetet får vi dimensionera litet mer, nämligen en DataRow och en DataTable: Dim objTable As DataTable Sedan lägger vi data från datasetet till objTable: objTable = objDS.Tables("Kontakter") Antag att vi vill lista alla namn i en ListBox. Koden blir: For Each odjDR In objDS.Tables("kontakter").Rows objDataAdapter.Dispose() Här listas allt som står i kolumnen Namn ur datasetet. Vi kan också ställa villkor för vad som skall visas i ListBoxen. Antag att vi först kollar så att fältet inte är tomt och sedan väljer de namn som börjar på K. For Each odjDR In objDS.Tables("kontakter").Rows (0,1) betyder att programmet skall undersöka 1 bokstav räknat från början av ordet - alltså position 0 - för att kontrollera att det är ett K. Koden för hela programmet är nu: Dim Connection As String Connection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\VB.Net skola\databashantering\adress.mdb" objConn.Open() For Each odjDR In objDS.Tables("kontakter").Rows objDataAdapter.Dispose() End Sub | |
![]() | ![]() |
![]() | |
SupportData.Net |