vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
1:n, dynamische Textboxen 
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.

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
1:n, dynamische Textboxen879Benjamin@vb18.03.04 12:58
Re: 1:n, dynamische Textboxen584ModeratorDaveS18.03.04 13:40
Re: 1:n, dynamische Textboxen538Benjamin@vb18.03.04 14:01
Re: 1:n, dynamische Textboxen504Benjamin@vb18.03.04 14:13
Re: 1:n, dynamische Textboxen505ModeratorDaveS18.03.04 14:52
Re: 1:n, dynamische Textboxen531ModeratorDaveS18.03.04 14:15
Re: 1:n, dynamische Textboxen520Benjamin@vb18.03.04 14:21
Re: 1:n, dynamische Textboxen528WaldiMaywood18.03.04 14:32
Re: 1:n, dynamische Textboxen528Benjamin@vb18.03.04 14:40
Re: 1:n, dynamische Textboxen478ModeratorDaveS18.03.04 14:52
Re: 1:n, dynamische Textboxen511WaldiMaywood18.03.04 14:57
Re: 1:n, dynamische Textboxen513ModeratorDaveS18.03.04 15:03

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel