AdapterUpdate übergibt falsches Value aus Combox

  • VB.NET
  • .NET (FX) 4.0

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

    AdapterUpdate übergibt falsches Value aus Combox

    Hallo VB gemeinde und alle anderen auch,

    ich hab ein Problem mit den Generierten Update Anweisung so vermute ich.

    Ich habe eine WinFrom mit mehren Comboboxen die Werte aus Tabellen beim onLoad Ereignis der Form laden.
    Jedes dieser Comboboxen hat ein Key (.Valuemember) und sein Anzeigename (.Displaymember).
    Zuweisen tue ich nicht via Code sondern lass alles aus dem Designerding so. Und alles ist natürlich mit einem Datensatz aus einer übergeordneten Tabelle versehen.Das Laden, Anzeigen oder Selektieren etc. ist alles kein Problem. Der User sieht auch die "SelectedValues" mit dem "Displaymember".Jetzt ändere ich aus den Comboboxen etwas und will das ganze speichern. Dann sollte ja der Valuemember eigentlich über den Tabeladapter an die
    übergeordneten Tabelle geupdatet werden. So zumindest bin ich mir zu 99,99% sicher ist es immer so und auch in zig meiner anderen Forms.
    Nur hab ich jetzt das Problem, dass er in einer Form und an der hab ich nicht mal was geändert, angefangen hat mir zu signalisieren, das ich versuche Werte zu übergeben die größer sind als die Datenbankfelder es zu lassen. (String or Binary data … Truncate..) also fehler suche.hat ein wenig gedauert bis ich dann die Tabelle mal alles auf MAX gestellt habe. und festgestellt habe das das Update versucht nicht mehr den .Valuemember zu übergeben,sondern den .Displaymember oder .Text wie man es nenn will.
    Ok lange rede :D Wenn ich das Update über den Code ausführe den kloppt er mir halt den Sichtbaren Text in die Spalten

    VB.NET-Quellcode

    1. Private Sub Btn_Save_AVSAUF_Click(sender As Object, e As EventArgs) Handles Btn_Save_AVSAUF.Click
    2. Me.ValidateChildren()
    3. Me.CWSAVSBindingSource.EndEdit()
    4. Me.CWSAVSTableAdapter.Update(Me.Global_Centralworksystem_Datatset.CWSAVS)
    5. End Sub

    meine Lösungsansätze waren bislang.- Adabter im DatasetDesigner die Methoden neu laden. und die GenerischenCmd s neu generieren lassen- Adapter von Form erneuern- Combobox Neu erstellen
    Weiß einer wie man das evtl. abstellen kann das der dann wieder den .Valuemember nimmt?

    VG Nerf
    der Adapter hat mit deiner Combo nix zu tun. Der DataAdapter schreibt die DataTable in die DB.
    also musst du suchen, wie dort falsche Werte hineingekommen sind - vermutlich über ungeeignetes Databinding der Combo.
    Combobox.Text darf nicht gebunden werden, aber der FormDesigner macht das, wenn man die Combo aus dem Datenfenster zieht.
    Also bei Comboboxen muss man die Bindings händisch einrichten.
    Danke ErfinderDesRades.

    Combobox.text war auf einmal gesetzt, bin nur nicht drauf gekommen das ich da auch hätte gucken sollen.
    Weil i.d.R Designer ich mach was du(Wenn das in Ordnung geht mit dem Du) auch eben sagtest binde Händisch.
    Wieso auf einmal das Binding auf .Text jetzt da war. ?( ich bin überfragt.

    VG Nerf


    EDIT: // Nicht ganz zum Thema aber ich Recycle meine Beiträge gern^^

    Muss nochmal was Fragen :)
    Hab grade die Situation das sofern die Form geöffnet wird die Comboboxen das SelectedValue anscheint nicht zugewiesen bekommen,
    aber nur dann wenn die Comboboxen sich in einem Panel befinden. Hol ich die da raus alles Top.
    Also was auch immer hier passiert ist irgendwas ist echt im argen.

    EDIT **:

    Ich hab jetzt alle Panels auf den Comboboxen lagen ersetzt und genau so wieder da hingestellt.
    Selbe Layout selbe eigenschafften. Jetzt geht wieder alles. Erklären kann ich mir das aber nicht.

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