ist es möglich eine sehr lange Dim command Anweisung aufzuteilen?

  • VB.NET
  • .NET (FX) 4.0

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

    ist es möglich eine sehr lange Dim command Anweisung aufzuteilen?

    Hallo Leute,

    ich arbeite gerade an einer Oberfläche in VBnet mit Gridview und verwende den Microsoft sql Server Management Studio 18 und VBnet Microsoft Visual Basic 2010 Express, da mir das lieber ist als das große Visual Studio. Jedenfalls im Moment.
    Nun zur Frage im Code für den Daten update Button, habe ich eine sehr lange Dim command Anweisung - Zeile, die mit jedem Feld in der Table länger und unübersichtlicher wird. Sie funktioniert einwandfrei, das ist nicht das Problem.
    Ich habe nur die Frage an euch, ob man diese Dim command - Anweisungs Zeile von einer extrem langen Zeile auf zwei oder mehrere kleine übersichtliche Zeilen stutzen kann. Ich hab alles versucht, aber so ganz klappt das nicht und ich bin mir nicht sicher,
    ob die die Dim commandzeile verdoppeln oder verdreifachen kann? Wie gesagt, es läuft alles Prima, nur die Frage ob einer eine Idee hat, wie ich diese extrem lange Command Zeile kleiner bekomme. Da ich noch mehr Felder brauche. Vielleicht hat ja einer von euch einen kleinen Codeschnippsel mit dem man das nachvollziehen kann? Oder einen Tipp, ich würde mich sehr freuen und wünsche euch einen schönen Donnerstag.

    VB.NET-Quellcode

    1. Private Sub Btn_update_Click(sender As System.Object, e As System.EventArgs) Handles Btn_update.Click
    2. Dim connection As New SqlConnection("data source=JOACHIM1\MEINSERVER1;Initial catalog=BeispielDATENBANK;Integrated Security=True")
    3. Dim command As New SqlCommand("UPDATE Users1 SET Vorname = @Vn, Name = @Na, Telefon =@Te,Email =@Em , Ort =@Or , Plz =@Pl , Strasse =@St , Nummer =@Nr , Firma =@Fa , Notiz =@No WHERE Id =@id", connection)'es geht um diese Zeile
    4. command.Parameters.Add("@Vn", SqlDbType.VarChar).Value = Vorname.Text
    5. command.Parameters.Add("@Na", SqlDbType.VarChar).Value = Nachname.Text
    6. command.Parameters.Add("@Te", SqlDbType.Text).Value = Telefon.Text
    7. command.Parameters.Add("@Em", SqlDbType.Text).Value = Email.Text
    8. command.Parameters.Add("@Or", SqlDbType.VarChar).Value = Email.Text
    9. command.Parameters.Add("@Pl", SqlDbType.Int).Value = Email.Text
    10. command.Parameters.Add("@St", SqlDbType.Text).Value = Email.Text
    11. command.Parameters.Add("@Nr", SqlDbType.Text).Value = Email.Text
    12. command.Parameters.Add("@Fa", SqlDbType.Text).Value = Email.Text
    13. command.Parameters.Add("@No", SqlDbType.Text).Value = Email.Text
    14. command.Parameters.Add("id", SqlDbType.Int).Value = Id.Text
    15. connection.Open()
    16. If command.ExecuteNonQuery() = 1 Then
    17. MessageBox.Show("Data updated")
    18. Else
    19. MessageBox.Show("Data Not updated")
    20. End If
    21. connection.Close()
    22. End Sub


    CodeTags korrigiert
    Thema verschoben; Das Thema wird automatisch dort erstellt, wo man sich befindet, wenn man auf [* Neues Thema] klickt.
    ~VaporiZed

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

    Das ist ja erstmal nur ein langer String. Somit z.B.:

    VB.NET-Quellcode

    1. Dim CommandTextParts As New List(Of String)
    2. CommandTextParts.Add("UPDATE Users1 SET Vorname = @Vn")
    3. CommandTextParts.Add("Name = @Na")
    4. CommandTextParts.Add("Telefon =@Te")
    5. CommandTextParts.Add("Email =@Em")
    6. CommandTextParts.Add("Ort =@Or")
    7. CommandTextParts.Add("Plz =@Pl")
    8. CommandTextParts.Add("Strasse =@St")
    9. CommandTextParts.Add("Nummer =@Nr")
    10. CommandTextParts.Add("Firma =@Fa")
    11. CommandTextParts.Add("Notiz =@No WHERE Id =@id")
    12. Dim CommandText = String.Join(",", CommandTextParts)
    13. Dim command As New SqlCommand(CommandText, connection)
    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.