2D array oder 3xINSERT was macht mehr Sinn?

  • VB.NET
  • .NET 5–6

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    2D array oder 3xINSERT was macht mehr Sinn?

    Hallo zusammen

    In meinem Projekt gibt es einen Teil, wo ich Verschiedene Eingaben in 3 verschiedene Spalten der DB eintragen muss.

    Im Moment bewerkstellige ich es so, das ich 3 INSERTS machen die wie folgt aussehen.

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Sub btnSpeichern_Click(sender As Object, e As EventArgs) Handles btnSpeichern.Click
    2. My.Application.Log.WriteEntry("Neuer Messeintrag wurde gemacht, '" & DateString & "', '" & TimeString & "'", TraceEventType.Information, 1)
    3. Dim cmd As New MySqlCommand("INSERT INTO `DWP`.`feuchtmittelmessung`(tank, datum, leitwert, phwert, temperatur, user, feuchtmittelzusatz, filter1, anmerkung)Values('T1', @datum, @leitwert, @phwert, @temperatur, @user, @feuchtmittelzusatz, '" & Filter1T1 & "', @anmerkung)", con)
    4. If CheckValidInput(txttnk1lwt.Text) = True And
    5. CheckValidInput(txttnk2lwt.Text) = True And
    6. CheckValidInput(txttnk3lwt.Text) = True And
    7. CheckValidInput(txttnk1phw.Text) = True And
    8. CheckValidInput(txttnk2phw.Text) = True And
    9. CheckValidInput(txttnk3phw.Text) = True And
    10. CheckValidInput(txttnk1temp.Text) = True And
    11. CheckValidInput(txttnk2temp.Text) = True And
    12. CheckValidInput(txttnk3temp.Text) = True And
    13. CheckValidDate(DateTimePickerMessungvom.Value) = True Then
    14. Try
    15. cmd.Parameters.AddWithValue("datum", DateTimePickerMessungvom.Value)
    16. cmd.Parameters.AddWithValue("leitwert", txttnk1lwt.Text.Replace(",", "."))
    17. cmd.Parameters.AddWithValue("phwert", txttnk1phw.Text.Replace(",", "."))
    18. cmd.Parameters.AddWithValue("temperatur", txttnk1temp.Text.Replace(",", "."))
    19. cmd.Parameters.AddWithValue("user", txtuser.Text)
    20. cmd.Parameters.AddWithValue("feuchtmittelzusatz", cbtnk1fmz.Text)
    21. cmd.Parameters.AddWithValue("anmerkung", txtanmerktnk1.Text)
    22. Catch myerror As MySqlException
    23. 'fehler meldung und fehlercode anzeigen
    24. MessageBox.Show("Es ist ein Fehler aufgetreten" & vbCrLf & myerror.Message & vbCrLf & "Errorcode: " & myerror.Number, "MySQL Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
    25. End Try
    26. Close()
    27. cmd.ExecuteNonQuery()
    28. Dim cmd1 As New MySqlCommand("INSERT INTO `DWP`.`feuchtmittelmessung`(tank, datum, leitwert, phwert, temperatur, user, feuchtmittelzusatz, filter1, anmerkung)Values('T2', @datum, @leitwert, @phwert, @temperatur, @user, @feuchtmittelzusatz, '" & Filter1T2 & "', @anmerkung)", con)
    29. Try
    30. cmd1.Parameters.AddWithValue("datum", DateTimePickerMessungvom.Value)
    31. cmd1.Parameters.AddWithValue("leitwert", txttnk2lwt.Text.Replace(",", "."))
    32. cmd1.Parameters.AddWithValue("phwert", txttnk2phw.Text.Replace(",", "."))
    33. cmd1.Parameters.AddWithValue("temperatur", txttnk2temp.Text.Replace(",", "."))
    34. cmd1.Parameters.AddWithValue("user", txtuser.Text)
    35. cmd1.Parameters.AddWithValue("feuchtmittelzusatz", cbtnk2fmz.Text)
    36. cmd1.Parameters.AddWithValue("anmerkung", txtanmerktnk2.Text)
    37. Catch myerror As MySqlException
    38. 'fehler meldung und fehlercode anzeigen
    39. MessageBox.Show("Es ist ein Fehler aufgetreten" & vbCrLf & myerror.Message & vbCrLf & "Errorcode: " & myerror.Number, "MySQL Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
    40. End Try
    41. Close()
    42. cmd1.ExecuteNonQuery()
    43. Dim cmd2 As New MySqlCommand("INSERT INTO `DWP`.`feuchtmittelmessung`(tank, datum, leitwert, phwert, temperatur, user, feuchtmittelzusatz, filter1, filter2, anmerkung)Values('T3', @datum, @leitwert, @phwert, @temperatur, @user, @feuchtmittelzusatz, '" & Filter1 & "', '" & Filter2 & "', @anmerkung)", con)
    44. Try
    45. cmd2.Parameters.AddWithValue("datum", DateTimePickerMessungvom.Value)
    46. cmd2.Parameters.AddWithValue("leitwert", txttnk3lwt.Text.Replace(",", "."))
    47. cmd2.Parameters.AddWithValue("phwert", txttnk3phw.Text.Replace(",", "."))
    48. cmd2.Parameters.AddWithValue("temperatur", txttnk3temp.Text.Replace(",", "."))
    49. cmd2.Parameters.AddWithValue("user", txtuser.Text)
    50. cmd2.Parameters.AddWithValue("feuchtmittelzusatz", cbtnk3fmz.Text)
    51. cmd2.Parameters.AddWithValue("anmerkung", txtanmerktnk3.Text)
    52. Catch myerror As MySqlException
    53. 'fehler meldung und fehlercode anzeigen
    54. MessageBox.Show("Es ist ein Fehler aufgetreten" & vbCrLf & myerror.Message & vbCrLf & "Errorcode: " & myerror.Number, "MySQL Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
    55. End Try
    56. Close()
    57. cmd2.ExecuteNonQuery()
    58. MessageBox.Show("Messungen erfolgreich eingetragen", "Information", MessageBoxButtons.OKCancel, MessageBoxIcon.Information)
    59. RefreshData()
    60. Else
    61. MessageBox.Show("Es ist ein Fehler aufgetreten" & vbCrLf & "Nicht alle Angaben enthalten gültige Werte.", "Eingabefehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
    62. 'Textbox mit Fehler auswählen
    63. If CheckValidInput(txttnk1lwt.Text) = False Then
    64. txttnk1lwt.Select()
    65. ElseIf CheckValidInput(txttnk2lwt.Text) = False Then
    66. txttnk2lwt.Select()
    67. ElseIf CheckValidInput(txttnk3lwt.Text) = False Then
    68. txttnk3lwt.Select()
    69. ElseIf CheckValidInput(txttnk1phw.Text) = False Then
    70. txttnk1phw.Select()
    71. ElseIf CheckValidInput(txttnk2phw.Text) = False Then
    72. txttnk2phw.Select()
    73. ElseIf CheckValidInput(txttnk3phw.Text) = False Then
    74. txttnk3phw.Select()
    75. ElseIf CheckValidInput(txttnk1temp.Text) = False Then
    76. txttnk1temp.Select()
    77. ElseIf CheckValidInput(txttnk2temp.Text) = False Then
    78. txttnk2temp.Select()
    79. ElseIf CheckValidInput(txttnk3temp.Text) = False Then
    80. txttnk3temp.Select()
    81. ElseIf CheckValidDate(DateTimePickerMessungvom.Value) = False Then
    82. DateTimePickerMessungvom.Select()
    83. End If
    84. End If
    85. End Sub


    Meine frage ist, würde es Sinn machen das ganze zu "verkürzen" oder "vereinfachen" mit einer 2D ARRAY?

    Oder gibt es eine einfachere Methode als die lange "Wurst" mit den 3 X INSERTS

    Gruß und Danke

    Gebhard

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.