| |
![zurück](../images/b_zurueck.gif)
VB.NET - Fortgeschrittene1:n, dynamische Textboxen | | ![](../images/trans.gif) | Autor: Benjamin@vb | Datum: 18.03.04 12:58 |
| also folgendes ich sitze jetzt seit kurzem an einer typischen datenbankanwendung. man hat kunden (1) und man hat weitere tables mit zB Ansprechpartner (n), Kontakte (n).
Beim Einlesen der Daten habe ich keine Probleme. Ich habe ein Dataset in das ich alle tables aus der Db lade. Dann habe ich noch 3 Dataviews. Pro Tabelle ein Dataview. Mein Form is so aufgebaut, das man links eine typische Detailseite hat, mit allen Infos über einen Kunden aus der Kundentabelle. Rechts habe ich 2 Tabs in denen die 1:n Beziehungen dargestellt werden sollen. Da ich kein Datagrid benutzen möchte, habe ich versucht Textboxen dynamisch zu erstellen. Das klappt auch eigentlich ganz gut. Ich setze einen RowFilter auf den DataView für zB Ansprechpartner (IDKunde = aktueller Kunde) und er gibt mir alle Einträge korrekt zurück. Meine Probleme beginnen aber sobald ich versuche Einträge zu editieren,löschen,erstellen oder an die Datenquelle (MS SQL Server 2000) zu schicken.
So jetzt aber ma nen paar Code Schnipsel (hoffe ich vergesse nichts wichtiges)
Um durch das Kunden DataView (dvKunden) zu navigieren binde ich es so:
mobjCurrencyManager = CType(Me.BindingContext(dvKunden), CurrencyManager) und benutze .Position zum navigieren.
Dann setze ich den RowStateFilter auf IDKunde = idkunde (idkunde enthält aktuelle KUnden-ID) und benutzte
For Each drvFoundKontakt In dvAnsprechpartner um alle Zeilen auszulesen, um dann in jedem Durchlauf so
TextBoxArray(i).DataBindings.Add("Text", dvKontakte.Table.Rows.Item(i), _
"Bemerkung") die TextBox zu binden.
Das funktioniert auch alles prima. Nun kommen die ersten Fehler. Um zu speichern benutze ich
Me.SqlDataAdapter3.Update(DsKunden1.Ansprechpartner)
Me.SqlDataAdapter5.Update(DsKunden1.Kontakt) das funzt allerdings nur wenn ich vorher folgendes mache:
mobjCurrencyManager.Position += 1
mobjCurrencyManager.Position -= 1 also im Prinzip einen Row nach vorne und dann einen Row zurück wechsle. Das ist im Prinzip auch kein Problem, mit einer kleinen If-Klausel die verhindert das er, wenn er sich beim letzten Datensatz befindet und speichert, zum falschen Datensatz zurückspringt, kann man das auch so lassen. Ich wüsste nur gerne warum das so ist?
So aber weiter mit meinen Problemchen.
Das grosse Problem ist, das ich es nicht gebacken bekomme, vernünftig Rows hinzuzufügen (bei Ansprechpartner oder Kontakte, neuer Kunde funzt)
Folgender Code sollte das eigentlich erledigen:
Dim drv As DataRowView
drv = dvAnsprechpartner.AddNew()
drv("IDKunde") = idkune das ist bestimmt nicht ganz richtig aber immerhin mein erster Versuch. Das Problem ist führe ich das so aus, springt er wieder in die For Each Schleife, meint aber bei Position X keinen Eintrag zu finden.
Ich hab es schon mit DataRow und .NewRow() probiert, aber irgendwie findet er nie einen neuen Row.
Zu Beginn habe ich mal die TextBoxen so gebunden:
TextBoxArray(i).DataBindings.Add("Text", dvKontakte.Item(i), "Bemerkung") und dann per .AddRow neue Zeilen eingefügt. Das hat auch ganz gut geklappt, bis ich bemerkt habe, das ich so zwar neue Zeilen erstellen konnte, aber leider keine mehr editieren. Will heissen im DataView wurden sie aktualisiert, aber nach dem Speichern und Neu Laden der Daten waren sie wieder weg.
Habt ihr also entweder gute Ratschläge für mich (progge VB.net erst seit 2 wochen, also wenns irgend möglich ist bitte gut erklären ). Oder eventuell ein Tutorial zum Aufbau von 1:n Beziehungen ohne DataGrids, also mit dynamisch erstellten TextBoxen?
Diese ganzen Möglichkeiten mit DataTable,DataView etc verwirren mich doch noch etwas ;)
If it was hard to code, it should be hard to read too. | ![](../images/trans.gif) |
![](../images/forum/m.gif) 1:n, dynamische Textboxen | 879 | Benjamin@vb | 18.03.04 12:58 | ![](../images/forum/l.gif) ![](../images/forum/m.gif) Re: 1:n, dynamische Textboxen | 584 | DaveS | 18.03.04 13:40 | ![](../images/trans.gif) ![](../images/forum/l.gif) ![](../images/forum/m.gif) Re: 1:n, dynamische Textboxen | 538 | Benjamin@vb | 18.03.04 14:01 | ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/forum/t.gif) ![](../images/forum/m.gif) Re: 1:n, dynamische Textboxen | 504 | Benjamin@vb | 18.03.04 14:13 | ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/forum/i.gif) ![](../images/forum/l.gif) ![](../images/forum/c.gif) Re: 1:n, dynamische Textboxen | 505 | DaveS | 18.03.04 14:52 | ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/forum/l.gif) ![](../images/forum/m.gif) Re: 1:n, dynamische Textboxen | 531 | DaveS | 18.03.04 14:15 | ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/forum/l.gif) ![](../images/forum/m.gif) Re: 1:n, dynamische Textboxen | 520 | Benjamin@vb | 18.03.04 14:21 | ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/forum/l.gif) ![](../images/forum/m.gif) Re: 1:n, dynamische Textboxen | 528 | WaldiMaywood | 18.03.04 14:32 | ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/forum/t.gif) ![](../images/forum/c.gif) Re: 1:n, dynamische Textboxen | 528 | Benjamin@vb | 18.03.04 14:40 | ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/forum/l.gif) ![](../images/forum/m.gif) Re: 1:n, dynamische Textboxen | 478 | DaveS | 18.03.04 14:52 | ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/forum/l.gif) ![](../images/forum/m.gif) Re: 1:n, dynamische Textboxen | 511 | WaldiMaywood | 18.03.04 14:57 | ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/trans.gif) ![](../images/forum/l.gif) ![](../images/forum/c.gif) Re: 1:n, dynamische Textboxen | 513 | DaveS | 18.03.04 15:03 |
![](../images/48x48/info.gif) | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
![nach oben](../images/b_top.gif) ![zurück](../images/b_zurueck.gif) |
|
Neu! sevPopUp 2.0 ![sevPopUp für VB/VBA und VB.NET](../images/werbung/sevpopup_100x100.jpg)
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere InfosTipp des Monats Access-Tools Vol.1 ![Access-Tools CD Vol.1](../images/werbung/apvol1_68x100.gif)
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|