Tipp 0168 Dictionary als kleine Datenbank
Autor/Einsender:
Datum:
  Thomas Becker
02.09.2007
Entwicklungsumgebung:   VB.Net 2005
Framework:   2.0
Dieser Tipp zeigt wie man kleinere Datenbestände ohne Access, SQL ect. einfach in VB verwaltet. Hierfür eignet sich das generische Dictionary,  welches zusammenhängende Datenpaare (Schlüssel/Wert) abspeichert.
Der Key wirkt im Beispiel wie ein Index, arbeitet aber durch Hash besonders bei großen Datensätzen schneller. Um den Speicherbedarf gering zu halten, ist jeder Datensatzinhalt in nur einem Value mit doppelten Trennzeichen untergebracht. Wird ein Datensatz gebraucht, wird (über den key) der value abgerufen und einfach auf die anzeigenden Steuerelemente gesplittet.
Der Tipp zeigt außerdem, wie man mehrere TextBoxen für Schleifenverwendung vorbereitet.
 
Public Class Form1
  Dim dict As New Dictionary(Of String, String)
  Public aTB(0 To 6) As TextBox

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e _
       As System.EventArgs) Handles MyBase.Load
     'Dictionary füllen
    dict.Add("[1830138]", "Visual Basic 2005|*Grundlagen, _
         Windows Forms, ADO.NET|*Buch|*Michael Kofler|_
         *3-8273-2338-X|*Addison-Wesley|*April 2006")
    dict.Add("[1830139]", "Visual Basic 2005 & .NET 3.0|_
         *Intern|*Buch|*Michael Werner, Boris Rieger|_
         *3-8158-2599-7|*Data Becker|*Juli 2007")
    dict.Add("[1830140]", "Visual Basic 2005 - Kompendium|_
         *Programmieren mit dem .Net-Framework 2.0|*Buch|_
         *Peter Monadjemi|*3-8272-4024-7|*Markt und Technik|_
         *Juli 2006")
    dict.Add("[1830141]", "Visual Basic 2005|*Das umfassende _
         Handbuch|*Buch|*Andreas Kühnel|*978-3-89842-585-8|_
         *Galileo Press|*Oktober 2006")
    dict.Add("[1830142]", "Microsoft Visual Basic 2005|_
         *Entwicklerbuch|*Buch|*Klaus Löffelmann|*3-86063-537-9|_
         *Microsoft Press|*April 2006")

     'Textboxen für numerische Schleifen automatisieren
    aTB(0) = TextBox1
    aTB(1) = TextBox2
    aTB(2) = TextBox3
    aTB(3) = TextBox4
    aTB(4) = TextBox5
    aTB(5) = TextBox6
    aTB(6) = TextBox7

     'Combobox mit jedem Key des Dictionary füllen
    Dim entry As KeyValuePair(Of String, String)
    For Each entry In dict
      ComboBox1.Items.Add(entry.Key)
    Next
    ComboBox1.Text = ComboBox1.Items(0)
  End Sub

  Sub Aufteilen()
    Dim Text As String = dict.Item(ComboBox1.SelectedItem)
    Dim Stringarray() As String = Split(Text, "|*")

    For i As Integer = 0 To 6 'durchläuft die 7 Textboxen
      aTB(i).Text = Stringarray(i).ToString
    Next
  End Sub

  Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As _
       System.Object, ByVal e As System.EventArgs) Handles _
       ComboBox1.SelectedIndexChanged
    Call Aufteilen()
  End Sub

  Private Sub ComboBox1_Leave(ByVal sender As Object, ByVal e As _
       System.EventArgs) Handles ComboBox1.Leave
    ComboBox1.Select()
  End Sub

  Private Sub Button1_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles Button1.Click
    Me.Close()
  End Sub
End Class
 
Weitere Links zum Thema
Access-Datenbank mit Tabelle erstellen

Windows-Version
98/SE
ME
NT
2000
XP
Vista
Win 7


Download  (18,3 kB) Downloads bisher: [ 497 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Tipps | Projekte | Tutorials | Bücherecke | VB-/VBA-Tipps | API-Referenz | Komponenten | VB.Net-Forum | VB/VBA-Forum | DirectX-Forum | Foren-Archiv | DirectX | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 25. Dezember 2011