Announcement

Collapse
No announcement yet.

Ungebundene Textboxen in SQL-Server speichern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ungebundene Textboxen in SQL-Server speichern

    Hallo,
    ich bin Umsteiger von VB6 nach VB.NET und ADO.NET.
    Grundsätzlich arbeite ich gerne mit ungebundenen Steuerelementen.
    Gibt es unter VB.NET und ADO.NET noch die Möglichkeit
    wie unter VB6 und ADO Textbox-Inhalte wie folgt in eine
    MS-SQL Tabelle zu schreiben, bzw zu ändern. Unter VB6 mit Recordset
    war das so. Kann ich mit dem Dataset das auch so machen.

    kontakt.Open "Select * from KontakteTbl", conn

    kontakt.AddNew
    kontakt("LieferantenNr") = Text19.Text
    kontakt("Kundenart") = Combo1.Text
    kontakt("Name1") = Text1.Text
    kontakt("Name2") = Text2.Text
    kontakt("Firmenbezeichnung") = Text3.Text
    kontakt.Update

    kontakt.Close

    Danke für Eure Hilfe.

    HL

  • #2
    Hallo,

    ja, es geht so ähnlich. Du musst aber klar zwischen den verschiedenen Klassen (genauer: ihren Objekten) unterscheiden: DataSet und DataTable als Datenmenge im Arbeitsspeicher, DbDataAdapter und DbCommand i.V.m. DbConnection für den Datenaustausch mit der Datenbank. Es werden fast nie alle Inhalte einer Tabelle eingelesen (Ausnahme: Nachschlagetabellen), sondern immer nur die aktuell benötigten Daten. Außerdem sind die Datentypen exakt zu beachten.

    Beachte vor allem, dass unter NET eine DbConnection immer nur kurzfristig erstellt (!) wird und nach Erledigung wieder geschlossen und aufgelöst wird. Ausführliche Erläuterungen siehe z.B. openbook VB Kap.23 ff.

    Das Verfahren, das dir vorschwebt, geht etwa so:
    Code:
    //  irgendwo vorher (!) werden irgendwelche Daten nach MyDataSet.Kontakt eingelesen
    DataRow row = MyDataSet.Kontakt.NewRow()
    row("LieferantenNr") = int.Parse(Text19.Text)
    row("Kundenart") = Combo1.SelectedIndex
    row("Name1") = Text1.Text
    MyDataSet.Kontakt.Rows.Add(row)
    Jetzt funktioniert DbDataAdapter.Update. Aber dafür solltest du einen neuen DbDataAdapter mit einer neuen DbConnection erzeugen, vorzugsweise in einem Using-Block. Als SelectCommand ist dafür "SELECT * FROM Kontakt" zulässig; der InsertCommand usw. wird durch DbCommandBuilder bereitgestellt. Aber das wird hier zu ausführlich, bitte schau in das OpenBook oder andere Literatur.

    Aber du siehst schon an meinem Beispiel die Vorteile gebundener TextBoxen. Das Konvertieren von Text in die benötigten Datentypen wird automatisch ausgeführt; unzulässige Werte können in der Regel nicht eingegeben werden.

    Übrigens gehören Namen wie Combo1 und TextBox17 verboten: Da weißt auch du spätestens in 14 Tagen nicht mehr, wofür sie gedacht sind.

    Gruß Jürgen

    Comment


    • #3
      Danke


      Danke für Deine ausführliche Beschreibung. Jetzt komm ich
      wieder ein Stück weiter.

      Gruß

      HL

      Comment

      Working...
      X