Variable = Datenbank - Tabelle - Zeile

axeos

Grünschnabel
Hallo,

damit es mir und euch nicht langweilig wird, habe ich für mich eine knifflige Frage gestellt.

Wer micht die letzten Tagen schreiben gesehen hat, es geht immer noch um das Datensicherungsprogramm.

Folgende Sache, grundsätzlich habe ich dank der Hilfe dieses Forums, die Grundordner schon einmal integriert. Jetzt möchte ich aber, dass der Benutzer die Chance hat 10 weitere Verzeichnisse seiner Wahl zu sichern.

Diese sind in der Access-Datenbank gespeichert und werden in einem Formular auch super angezeigt, bzw. gespeichert.

Die Frage ist nun eigentlich, wie ich diese Orte, bzw. Pfadangaben aus der Tabelle lesen kann und diese einer Variable innerhalb des Programm zuweisen kann.

Problem ist ja dabei, dass der Benutzer bei Verzeichnis auch Verzeichnis 5 gesichert haben möchte und nicht ständig nur Verzeichnis 1.

Also kurz und knapp: Wie weise ich einer Variable eine bestimmte Zeile in einer Datenbank/Tabelle zu?

Danke und schon einmal eine Gute Nacht!
 
Indem du die Daten mittles OleDbConnection, OleDbCommand und OleDbDataReader ausliest. Sieh dir die Seiten dazu in der MSDN an, da finden sich auch entsprechende Beispiele.
 
Hallo,

also ich komme mit dem Tipp nicht so ganz klar. Ich finde das der MSDN-Artikel nicht gerade für Anfänger gemacht worden ist.

Kann vielleicht einer beispiel erstellen, was etwas mehr die Praxis darstellt?

Danke und Gute Nacht.
 
Also ich würde als erstes mal die Datenbank erstellen und im Projektverzeichnis abspeichern. Dann die Datenbank als "Vorhandenes Element" hinzufügen. Bei mir wird dann gleich das DataSet erstellt, mit dem man jetzt die Daten auslesen kann:

Code:
Module Module1
    Sub Main()
        Dim Ordnerliste As New DatenbankDataSet.OrdnerlisteDataTable()
        Dim ota As New DatenbankDataSetTableAdapters.OrdnerlisteTableAdapter()

        ota.Fill(Ordnerliste)

        Dim abfrage = From zeile In Ordnerliste Select zeile.Ordner

        For Each ordner In abfrage
            Console.WriteLine(ordner)
        Next

        Console.ReadKey()
    End Sub
End Module

Ich hoffe mal, das ist kein grober Designfehler :D
 
Zuletzt bearbeitet:
danke engelmarkus,

jetzt komme ich dem Ziel etwas näher, denn dein Beispiel ist etwas Praxisnäher, doch das Problem hieran ist, dass ich in einer Klasse Öffentliche Variablen deklariert habe, die ich im gesamten Programm benutzen möchte. Jetzt wollte ich auch ebenhalt auch die einzelnen Zeilen der Datenbank mit einer speziellen Variablen versehen.

Also meine Klasse sieht so aus und am Ende stehen dann die öffentlichen Variablen, wobei die Variable "Verzeichnis1" Zeile 1 aus der Datenbank entsprechen sollte.

Ist das überhaupt möglich?

Code:
Public Class globvar

    'Betriebssystem Umgebungsvariablen

    Public USERNAME As String = Environment.GetEnvironmentVariable("username")
    Public OSVERSION As String = Environment.GetEnvironmentVariable("OSVERSION")

    'Programminterne Umgebungsvariablen (FÜR WINDOWS XP)

    Public HOMEDRIVEXP As String = Environment.GetEnvironmentVariable("homedrive")
    Public HOMEPATHXP As String = Environment.GetEnvironmentVariable("homepath")
    Public OWNDATAXP As String = Environment.GetEnvironmentVariable("userprofile") + "\Eigene Dateien"
    Public OWNPICSXP As String = OWNDATAXP + "\Eigene Bilder"
    Public OWNVIDEOXP As String = OWNDATAXP + "\Eigene Videos"
    Public OWNEXEXP As String = OWNDATAXP + "\Eigene Downloads"
    Public OWNMUSICXP As String = OWNDATAXP + "\Eigene Musik"
    Public OUTLOOKXP As String = HOMEDRIVEXP + "\Anwendungsdaten\Microsoft\Outlook\Outlook.pst"
    Public THUNDERBIRDXP As String = HOMEDRIVEXP + "\Anwendungsdaten\Thunderbird"
    Public FIREFOXXP As String = HOMEDRIVEXP + "\Anwendungsdaten\Mozilla\Firefox\Profile\xyz0815.default\bookmarks.html"
    Public FONTSXP As String = Environment.GetEnvironmentVariable("systemroot") + "\fonts"

    ' Frei wählbare Verzeichnisse

    Public Verzeichnis1 As String
    Public Verzeichnis2 As String
    Public Verzeichnis3 As String
    Public Verzeichnis4 As String
    Public Verzeichnis5 As String
    Public Verzeichnis6 As String
    Public Verzeichnis7 As String
    Public Verzeichnis8 As String
    Public Verzeichnis9 As String
    Public Verzeichnis10 As String

    ' Datensicherungsverzeichnis

    Public DASIVRZ As String

End Class
 
Hmm .. da stellen sich mir sowieso ein paar Fragen:

1) Wieso auf 10 Verzeichnisse beschränken?
2) Für die paar Daten eignet sich eine XML-Datei wesentlich besser, als da gleich mit einer Datenbank zu arbeiten.
3) Wofür Daten extra nochmal halten, die du ohnehin über Environment heraus bekommst?
4) Du bist damit rein auf ein deutschsprachiges System beschränkt.
 
Hi Norbert,

Ich will nicht mit Norton & Co. konkurrieren, da fehlt dann doch die Erfahrung und Programmierkenntniss, was du vielleicht verstehen kannst, wenn ich eben gerade erst richtig angefangen habe zu programmieren, zwar habe ich leichte Tüfteleien programmiert, aber an die jetztige Idee kommt bisher nichts heran.

Zur zweiten Frage muss ich sagen, dass wusste ich nicht, dass XML auch als Datenspeicherort genutzt werden kann. Wenn das einfacher geht, nehme ich gerne diese Variante. (Ich gehe dazu mal googlieren)

Ich habe mir Grundkenntnisse von einem FRANZIS-Buch angeignet und da stand nichts anderes als SQL oder ACCESS.

Die unterschiedlichen Variablen stammen aus einem anderen Post von mir, wo ich schonmal gefragt habe nach Umgebungsvariablen lesen und setzen.

Und zur Sprache setze ich mit meinem ersten Absatz wieder an. Das Programm soll von mir sein und nicht von euch, weil ich wegen jedem Kram zu euch komme. Ich habe jetzt schon alleine mehrere Posts wegen diesem Programm hier laufen/laufen lassen.

Dank trotzdem für deine Hilfe
 
Das mit dem XML mach dann aber bitte mit den neuen Möglichkeiten, die dir VB9 bietet:

Code:
Module Module1
    Sub Main()

        Dim Verzeichnisse As XElement = XElement.Load("Daten.xml")

        For Each Verzeichnis In Verzeichnisse.Elements()
            Console.WriteLine(Verzeichnis.@Pfad)
        Next

        Console.ReadKey()
    End Sub
End Module

<?xml version="1.0" encoding="utf-8" ?>
<Verzeichnisse>
<Verzeichnis Pfad="c:\windows"/>
<Verzeichnis Pfad="c:\"/>
<Verzeichnis Pfad="e:\daten"/>
</Verzeichnisse>

Nur als Anregung. Den Rest darfst du dir natürlich gerne selber erarbeiten :D
 
Zurück