Datenbank auslesen

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von HerrFrie.

    Datenbank auslesen

    Hallo Forum!

    Ich würde gerade aus einer Access Datenbank Werte auslesen, diese dann in Variablen schreiben und mit diesen dann Komplex rechnen. Die errechneten Werte werden dann in eine andere Tabelle geschrieben.

    Mein Problem:

    Ich kriege keine Schleife über diesen Vorgang, so das mit dem nächsten Datensatz auch gerchnet wird. Wenn ich eine Schleife über die Variablen beim Auslesen lege, werden die Daten nicht mehr erkannt. Meine Variblen sind dann rot unterlegt und werden als nicht definiert gesehen.

    Der komplette Vorgang wird durch einen Button ausgelöst....also seht quick and dirty.

    Weiß jemand wie man das n den Griff bekommt? Danke im vorraus...

    AVA

    VB.NET-Quellcode

    1. Try
    2. con.Open()
    3. MessageBox.Show(con.DataSource)
    4. con.Close()
    5. Catch ex As Exception
    6. MessageBox.Show(ex.Message)
    7. End Try
    8. 'SQL an Datenbank
    9. cmd.CommandText = "SELECT Projekt, FROM Eingabe_Grundeinstellung"
    10. con.Open()
    11. 'Hier fehlt die Schleife
    12. reader = cmd.ExecuteReader()
    13. reader.Read()
    14. Dim Pr = reader("Projekt")
    15. Dim FH = reader("Frequenz_Hochspannung")
    16. Dim Da = reader("Außendurchmesser") / 1000
    17. con.Close()
    18. 'Die Rechnung soll dem entsprechent auch durchlaufen werden, Variablen werden aber nicht mehr als deklariert betrachtet, eal bei welcher Schleife.
    19. Dim Omg50 As Double = FH * 2 * PI
    20. 'MessageBox.Show(Omg50)
    21. Dim R As Double
    22. R = (Sqrt(Rgleich * uo * ur * Omg50) / (PI * Da * Sqrt(2)) + (uo * Omg50) / 8) * 1000000
    23. 'MessageBox.Show(R)
    24. 'Hier wird zurück in die DB geschrieben
    25. Try
    26. con.Open()
    27. Dim stri As String
    28. stri = "INSERT INTO Ausgabe_Grundeinstellungen("....
    29. cmd.CommandText = stri
    30. MessageBox.Show(stri)
    31. anzahl = cmd.ExecuteNonQuery()
    32. MessageBox.Show("Datensätze geändert: " & anzahl)
    33. Catch ex As Exception
    34. MessageBox.Show(ex.Message)
    35. con.Close()
    36. End Try
    37. ' Mit einem Datensatz gibt es keine Probleme...


    Edit by Manschula: Thema verschoben

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Manschula“ ()

    Hi,

    die Schleife, womit du mit dem DataReader lesen kannst funktioniert so :

    VB.NET-Quellcode

    1. cmd.CommandText = "SELECT Projekt, Frequenz_Hochspannung, Außendurchmesser FROM Eingabe_Grundeinstellung"
    2. Do While reader.read()
    3. Dim Pr = reader("Projekt")
    4. Dim FH = reader("Frequenz_Hochspannung")
    5. Dim Da = reader("Außendurchmesser") / 1000
    6. Loop


    In der SELECT Anweisung mußt du dann aber auch die Frequenz und den Außendurchmesser mit angeben.
    Die Do/Loop Schleife ließt jetzt alle Zeilen in die Variablen ein. Soll heißen, dass wenn du nach dieser Schleife mit den Variablen arbeitest, die Werte der letzten Zeile in der Datenbank in den Variablen stehen.
    Du müstest also deine Berechnungen mit in die Schleife bauen, damit jede Zeile der Datenbank berechnet wird, oder in deinen CommandText noch ein WHERE einbauen, damit nur eine bestimmte Zeile gelesen wird.

    Gruß
    HerrFrie