Announcement

Collapse
No announcement yet.

Listboxinhalt in neuem Datensatz speichern

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

  • Listboxinhalt in neuem Datensatz speichern

    Hallo NG, ich habe folgendes Problem:
    Ich habe eine Eingabemakse mit diversen Steuerelementen. Darunter sind auch Comboboxen umgestellt auf Listboxmodus. In diesen Boxen befinden sich 5-6 statische Werte. Die Verbindung zur Datenbank habe ich -nach Anleitung- mit DataAdapter, CommandBuilder, DataView, BindingSource und DataSet erstellt. Die Datenbindung mit Me.ComboBox1.DataBindings.Add("Text", BindingSource1, "STATUS").

    So, jetzt das Problem:
    Wenn ich einen neuen Datensatz anlege, steht in der Listbox der erste statische Eintrag jedoch wird er nicht gespeichert. Das gespeicherte Feld behält den NULL-Wert.
    Erst wenn ich den Inhalt der Listbox änder und speicher wird das auch in die Datenbank geschrieben.

    Jetzt kommt meine Vermutung:
    Um den Inhalt der Listbox mit dem Binding zu speichern, müsste das Binding eine Veränderung des Steuerelementinhaltes feststellen. Das ist erst nach dem manuellen Wechsel der Fall.

    Und hier die Frage:
    Wenn ich damit recht habe, kann mir jemand sagen, wie ich dem DataBinding "vorgaukeln" kann, dass sich der Inhalt der Listbox geändert hat. Damit würde der Inhalt ja automatisch auch gespeichert werden.

    Vielen Dank für jede Hilfe im voraus.

    mfg mcGeorge

  • #2
    Hallo,

    führe vor dem DbDataAdapter.Update noch BindingSource.EndEdit aus; das dürfte genau das sein, was bei dir noch fehlt entsprechend deiner Vermutung.

    Gruß Jürgen

    Comment


    • #3
      Wenn ich einen neuen Datensatz anlege, steht in der Listbox der erste statische Eintrag jedoch wird er nicht gespeichert. Das gespeicherte Feld behält den NULL-Wert.
      Wie hast du denn den neuen Datensatz angelegt (und wie kann der statisch sein)??? Ich hätte mal vermutet du hast eine neue Row in deiner Datatable erzeugt also entweder über DataTable.NewRow oder BindingSource.Add. In beiden Fällen sind die Daten aber sofort in deiner Datenmenge egal ob oder wie die Datenmenge gebunden an Controls gebunden wurde.

      Comment


      • #4
        Tschuldigung hat nen bisschen gedauert.

        Also ich füge die Datensätze mit BindingSource.AddNew() hinzu. Danach befülle ich einge Felder mit den Standardwerten und beende das mit .EndEdit(). Zum Abschluß kommt noch ein DataAdapter.Update( DataView.Table )

        Die Inhalte der Listboxen werden aber bei dieser Methode nicht gespeichert. Ich glaube, dass hier das Problem ist, dass sich der Inhalt der Listboxen (SelectedItem) sich zwischen AddNew und EndEdit nicht ändert (Standardwert)

        Deshalt die Frage: Wie kann ich das "UpdateFlag" bei einem Steuerelement setzen, damit das EndEdit und Update auch den Inhalt des Steuerelements schreibt? Irgendwie muss doch der DataAdapter wissen, in welchem Feld Änderungen gemacht wurden, damit er das Statement zusammensetzen kann?

        Bin für jeden Tipp dankbar.
        Georg
        Zuletzt editiert von mcGeorge; 12.02.2010, 21:54.

        Comment

        Working...
        X