Daten aus Datenbank direkt in eine Variabel

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Daten aus Datenbank direkt in eine Variabel

    Servus zusammen,

    ich arbeite grade an einem Datenbank Programm und ich möchte wenn ich in einer Combobox einen Eintrag auswähle automatisch alle zugehörigen Datenbank einträge (insgesamt 4) in variabeln speichern.

    Beispiel

    Dim Spalte2 As String = ??? 'tableBindingSource.Current("spalte1").toString' | Ich habe echt keine Ahnung ?(
    Dim Spalte3 As String
    Dim Spalte4 As String
    Dim Spalte5 As String

    Die Combobox ist schon verlinkt mit der Tabelle
    Gibt dort Spalte 1 aus

    Danke im Vorraus
    PWM247
    1. sowas tut man nicht, in Ado.Net.
      Änderungen bleiben schön im Dataset, und erst wenn der User es gut findet (oder es einen anneren guten Grund gibt), werden alle Änderungen in die DB geschrieben

    2. Wozu brauchst du eine DB?
      Die meisten Anfänger-Geschichten werden viel viel besser ohne DB gelöst: DB-Programmierung ohne Datenbank
      Ist dein Prob hingegen keine Anfänger-Geschichte, so hast du ein ernstes Problem, weil dir fehlen genau die Grundlagen, die man braucht, um eine tragfähige Anwendungs-Architektur zu konzipieren.
    Danke fuer deine Andwort

    ZU 1:

    Ich glaube du hast mich falsch verstanden. Ich will keine Aenderungen in der DB. Ich moechte einfach ein Wert, aus einer Spalte in der DB direkt an eine Variabel weitergeben, ohne den Umweg eines Datagrids, Textbox etc. zu nehmen.



    Zu 2:

    Du liegst voellig richtig das ich mich noch nicht lange mit Datenbanken beschaefige aber gerade darum frage ich ja. Ich gehe davon aus, das man mir hier helfen kann.

    Warum nutze ich Datenbanken?

    Diese Frage ist ziemlich einfach zu klaeren.

    Ich nutze Datenbanken, weil das Programm, welches ich schreibe, neue Variabeln aufnehmen muss, die durch Usereingaben moeglich gemacht werden. Diese sollen beim naesten Start wieder vorhanden sein, was meines Wissens nicht mit normalen Variabeln geht, aber vlt irre ich mich ja.

    Hoffe mein Anliegen ist ein bisschen klarer geworden
    jepp - ich hab dich falsch verstanden.
    Du willst einen per Combobox ausgewählten Datensatz aus der DB abrufen und in Variablen einlesen.

    Ändert aber nix an meine Aussage, dass man so nicht vorgeht.
    mach dir ein typisiertes Dataset, und befülle das - zunächstmal direkt von Platte, wenn du mehr Erfahrung hast, kannstes auch aus einer DB befüllen.
    Um Werte in einer Combo auswählen zu können, muß man sie zuvor aus der DB geladen haben.

    Wenn man die Datensätze, die zur Auswahl stehen sollen, aber schon geladen hat, dann braucht man keinesfalls dieselben datensätze noch mal abrufen.

    zu 2: Das ist keine Antwort.
    Dass dein Proggi Daten aufnehmen, speichern, verarbeiten soll, davon gehe ich mal aus. Das geht aber in jedem Falle besser ohne DB, es sei denn, es handelt sich um über 10000 Datensätze, oder um eine Multi-Client-Anwendung.
    Nur führts mit 90%iger Sicherheit auf Holzwege, wenn man den 2. Schritt vor dem ersten tut, nämlich Datenbank-Zugriffe programmiert, bevor man sich mit Datenmodellierung, typisiertem Dataset, DataGridview und Databinding auskennt.
    Einmal so einen Holzweg beschritten, und die Möglichkeit, sachgerecht vorzugehen ist gänzlich verbaut.

    Noch einmal: In Ado.Net füllt man keine Werte in Variablen. Man hats Dataset, und darin sind die Datensätze, und diese Datensätze sind die Variablen, da muß man nix mehr umfüllen.
    Zur Interaktion mit dem User bindet man die Daten an Controls - auch da wird nix umgefüllt.
    Aber diese Dinge zu lernen muß man zunächstmal die DB-Programmierung ohne Datenbank anfangen - weil sonst steht man sich selbst im Weg, aber gründlich.

    Also zu deim Beispiel, das ginge so

    VB.NET-Quellcode

    1. Dim rwTable As TableRow = DirectCast(DirectCast(tableBindingSource.Current, DataRowView).Row, TableRow)
    Nun hast du eine Variable, und die enthält alle 4 Spalten - theoretisch wäre möglich

    VB.NET-Quellcode

    1. dim s1=rwTable.Spalte1
    2. dim s2=rwTable.Spalte2
    3. dim s3=rwTable.Spalte3
    4. dim s4=rwTable.Spalte4
    aber wer würde sonen Unfug programmieren?

    Und mit einer DB hat dieser Vorgang garnix zu schaffen. Die Daten sind bereits vorhanden, und einer davon wird zugegriffen - eine DB-Abfrage wäre gänzlich abwegig

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „ErfinderDesRades“ ()