ExecuteNonQuery Problem

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Grasdackel1996.

    ExecuteNonQuery Problem

    Hi,

    ich arbeite gerade an einer Raumverwaltungssoftware. Beim Erstellen einer neuen Veranstaltung soll überprüft werden, ob der gewünschte Raum zur eingegebenen Zeit verfügbar ist. Mein Programm arbeitet im Hintergrund mit einer Access-Datenbank(.mdb), in der alle Veranstaltungen eingetragen werden. Allerdings ergibt sich bei mir folgendes Problem: Bei der Abfrage, ob an dem ausgewähltem Tag eine Veranstaltung stattfindet, ist ExecuteNonQuery fälschlicherweise 0 (siehe Bild).

    Ich poste nicht den kompletten Code, da dieser viel zu lang wäre.

    VB.NET-Quellcode

    1. Try
    2. con4.Open()
    3. cmd4.CommandText = "select * from Veranstaltungen where Datum = '" & chooseddatum & " 00:00:00'"
    4. Dim anzahl As Integer = cmd4.ExecuteNonQuery()
    5. If anzahl = 0 Then
    6. 'weiter ohne Raumüberprüfung
    7. datensatzspeichern()
    8. Exit Sub
    9. 'MsgBox("CommandText = " & cmd4.CommandText & vbCrLf & "anzahl = 0")
    10. 'Exit Sub
    11. ElseIf anzahl > 0 Then
    12. reader4 = cmd4.ExecuteReader()
    13. Do While reader4.Read()
    14. altbeginn = reader4("Beginn")
    15. altende = reader4("Ende")
    16. altraum = reader4("Raum")
    17. Loop
    18. reader4.Close()
    19. MsgBox("altbeginn = " & altbeginn & vbCrLf & "altende = " & altende)
    20. altbeginn = altbeginn.ToString().Replace(":", "")
    21. altende = altende.ToString().Replace(":", "")
    22. altbeginn = CInt(altbeginn)
    23. altende = CInt(altende)
    24. con4.Close()
    25. 'MsgBox("CommandText = " & cmd4.CommandText & vbCrLf & "anzahl > 0")
    26. 'Exit Sub
    27. End If
    28. Catch ex As Exception
    29. con4.Close()
    30. MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehlercode: 0017")
    31. Exit Sub
    32. End Try
    33. reader4.Close()
    34. con4.Close()




    Weis jemand, was ich eventuell vergessen haben könnte oder was ich anders machen muss?
    Vielen Dank für eure Hilfe!
    Bilder
    • Fehler2.JPG

      60,22 kB, 704×445, 183 mal angesehen
    ich rate dir ganz ab, da gleich mit einer DB ranzugehen. Die Verwaltungslogik schreibste viel einfacher mit DB-Programmierung ohne Datenbank
    Hier noch eine weitere Begründung: Datenbänkerei-Einstieg

    gugge auch mal [VB 2008] Personaleinsatz-Programm, da ist eine fast identische Anforderung schon sehr weitgehend durchkonzpiert gewesen.
    Deine Idee ist gut, kommt für mich leider nicht in frage, da mein Code ausgedruckt über 30 Seiten lang ist. Ich müsst also an sehr vielen Stellen etwas verändern. Mein "Kunde" hat außerdem schon ein bestehendes System mit einer Datenbank und meine Software soll sich an dieses System anpassen.

    Ist es mit deiner Variante überhaupt möglich, Einschränkungen festzulegen (wie z.B. in SQL mit der where-Klausel)?

    Grasdackel1996 schrieb:

    ...über 30 Seiten lang ist. Ich müsst also an sehr vielen Stellen etwas verändern.
    ähm - du müsstest ganz neu anfangen.
    Ich weiß jetzt nicht, wieviele der 30 Seiten sich mit Persistierung beschäftigen - das würde sich bei DatasetOnly ja ungefähr auf 30 Zeilen reduzieren.

    Zu den Einschränkungen gugge DataExpressions
    na, dann eben mit DB: "Datenbank in 10 Minuten" auf Movie-Tuts

    Der Witz am Dataset ist, dasses eiglich Bestandteil des Ado.Net - Datenzugriffskonzepts ist. gugge auch die auf der Site verlinkten Beth Massi - Videos an.

    naja - jetzt habichmal dein code angeguckt - lies mal im ObjectBrowser nach, was diese Methode zurückgibt.

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