Datarow to Bindingsource

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von klyer.

    Datarow to Bindingsource

    Hallo Com,

    Es gibt ja die Möglichkeit, einen Eintrag eines Datagridviews zu bearbeiten.
    Das sieht so in etwa aus:

    VB.NET-Quellcode

    1. Using frm = New EditKunde
    2. frm.KundeBindingSource.DataSource = KundeBindingSource.Current


    Nun habe ich aber nur eine Datarow (Eine Variable, welche eine bestimmte Datarow beinhaltet), mit welcher ich EditKunde aufrufen will um dort die Textboxen, ... mittels der Datarow zu füllen.
    "EditKunde" ist an eine Bindingsource gebunden.
    EditKunde rufe ich auch nicht über ein DGV ab sondern von einer ganz anderen Form.
    Wie muss ich nun vorgehen, um das zu realisieren?
    bei

    VB.NET-Quellcode

    1. frm.KundeBindingSource.DataSource = KundeBindingSource.Current
    ist in KundeBindingSource.Current ein DataRowView, das ist eine Wrapperklasse für DataRows, mit der BindingSources intern arbeiten.
    Wenn du eine DataRow in deiner Variable hast, habich große Zweifel, obs gelingt.
    Kannst du nicht ein DataRowView in deine Variable tun?
    Folgender Sachverhalt:

    Auf einer Form werden Panels aus einer Datatable generiert. Jedes Panel bekommt dabei einen eindeutigen .Tag welcher eben die Datarow der Datatable beinhaltet. Die Panels sind nur zum Anzeigen gedacht.
    Über das Panel können dann eben versch. Werte bearbeitet werden, die die Datarow noch so beinhaltet.
    Momentan weiß ich nicht,wie man mit Datarowview umgeht?!
    Controls generieren ist halt meist ein blöder Ansatz - ein DetailView ist da leistungsfähiger und flexibler.
    Bei deine Panel-Geschichte sehe ich nicht, wie du

    VB.NET-Quellcode

    1. frm.KundeBindingSource.DataSource = KundeBindingSource.Current
    integrieren könntest.

    Wieviele Panels sollen das denn werden? Und wieviele Controls sind auf jedem?

    ErfinderDesRades schrieb:


    Bei deine Panel-Geschichte sehe ich nicht, wie du

    frm.KundeBindingSource.DataSource = KundeBindingSource.Current


    integrieren könntest.


    Das ist es ja....das weiß ich auch nicht :)

    Wieviele Panels sollen das denn werden? Und wieviele Controls sind auf jedem?


    Die Panels werden zur Laufzeit generiert bzw. kommen eben aus einer Datatable.

    Mein Vorhaben ist: Eine Art Kalender. Dort gibt es Einträge, welche die Panels darstellen. Um einen Eintrag zu editieren, wird dann halt der Eintrag aus der Datatable in das "BearbeitenForm" übernommen.
    Vl. gibt es ja andere Wege, den richtigen Eintrag(Row) mit den dazugehörigen Werten zu laden?

    Es gibt ja auch die Methode über DataRow.item .... nur müsste ich dann für jedes Control einzeln festlegen, wie es gefüllt wird.
    Weiter gehts...
    Und zwar bekomme ich die DataRow in eine RowIndex überführt. Nur bekomme ich bei "KundeBindingSource.DataSource = KundeID" bzw. frm.showdialog -> "An die Eigenschaft oder Spalte KundeID für die DataSource kann nicht gebunden werden."
    Was müsste ich denn haben (RowIndex, DataRow, ...) um die Datasource richtig zu befüllen?
    ein Datarowview.
    Datarowviews sind nur in BindingSources drin (und in DataViews, aber davon ist bisher noch nie gesprochen worden), und können davon abgerufen werden, entweder das current DataRowview, aber auch indiziert

    VB.NET-Quellcode

    1. dim drv = DirectCast(myBindingSource(2),DataRowview)