Recordset-Funktionen in VB.net

  • VB.NET
  • .NET 4.0

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Nofear23m.

    Recordset-Funktionen in VB.net

    Hallo zusammen,

    ich habe folgenden Code in VB6, den ich nach .net übernehmen möchte:
    Hier wird eine DB sortiert, nach Treffern gesucht und verglichen.

    Visual Basic-Quellcode

    1. Set InselPZsRS = DBEngine.Workspaces(0) _
    2. .OpenDatabase(PfadMdb) _
    3. .OpenRecordset("SELECT * FROM InselPZs ORDER BY PZ", dbOpenDynaset)
    4. Private Sub SetListe(pz As Integer, cl As Integer, ByVal w As Single, ByVal nz As Single, _
    5. Optional text As String = "")
    6. Dim s As String, NeuSatz As Boolean
    7. s = "PZ =" + Str(pz) '+ "."
    8. InselPZsRS.FindFirst (s)
    9. NeuSatz = False ' kein neuer Satz
    10. If InselPZsRS.NoMatch Then
    11. NeuSatz = True
    12. Else ' schon da
    13. 'wenn W<cl> oder NZ<cl> nicht leer, dann addnew
    14. Select Case cl
    15. Case 1
    16. If InselPZsRS!W1 <> 0 Or InselPZsRS!NZ1 <> 0 Then NeuSatz = True
    17. Case 2
    18. If InselPZsRS!W2 <> 0 Or InselPZsRS!NZ2 <> 0 Then NeuSatz = True
    19. Case 3
    20. If InselPZsRS!W3 <> 0 Or InselPZsRS!NZ3 <> 0 Then NeuSatz = True
    21. Case 4
    22. If InselPZsRS!W4 <> 0 Or InselPZsRS!NZ4 <> 0 Then NeuSatz = True
    23. Case 5
    24. If InselPZsRS!W5 <> 0 Or InselPZsRS!NZ5 <> 0 Then NeuSatz = True
    25. End Select


    Ich habe das Programm in .net geführt, mir fehlen aber einige Datenbank-Kenntnisse im Bereich ADO. Habe zwar den dicken Wälzer "Datenbank-Programmierung mit
    Visual Basic 2012" zugelegt, aber der hilft mir auch nicht Recht weiter.

    So weit sieht der Code für den Teil oben gerade aus:

    VB.NET-Quellcode

    1. Private Sub SetListe(pz As Integer, cl As Integer, ByVal w As Single, ByVal nz As Single, _
    2. Optional text As String = "")
    3. Dim s As String, NeuSatz As Boolean
    4. Dim Test As String
    5. Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Daten\Zeitbl.accdb;")
    6. conn.Open()
    7. s = "PZ =" + Str(pz) '+ "."
    8. 's -> PZ = 0
    9. 's -> PZ = 900
    10. ' ...
    11. 'InselPZs öffnen
    12. Dim InselPZsRS As New OleDbDataAdapter("SELECT * From InselPZs Order BY PZ", conn)
    13. conn.Close()
    14. 'InselPZsRS.FindFirst(s)
    15. 'NeuSatz = False ' kein neuer Satz
    16. 'If InselPZsRS.NoMatch Then ' diese PZ noch nicht vorhanden ?
    17. ' NeuSatz = True
    18. 'Else ' schon da


    Woran ich jetzt hänge, sind die Begriffe

    Visual Basic-Quellcode

    1. .FindFirst
    2. .NoMatch


    Zeile 18+22 (Bild darüber). Gibt es diese Begriffe nicht auch mit dem ADO-Zugriff und wo kann ich die als Übersicht ersehen (Internet oder Buch)?

    Danke im Voraus für Tipps !
    Hallo

    KlausJochen schrieb:

    ich möchte eigentlich nur prüfen ob es einen Wert den ich im String gespeichert habe, hier drin gibt


    Naja, wenn man genau ist:

    SQL-Abfrage

    1. SELECT CASE WHEN EXISTS (
    2. SELECT *
    3. FROM InselPZs
    4. WHERE MyCol = "MyString"
    5. )
    6. THEN CAST(1 AS BIT)
    7. ELSE CAST(0 AS BIT) END


    Viel performanter da man nur ein Boolean zurückbekommt. Sollte es wirklich nur darum gehen zu wissen ob es den Datensatz gibt.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.