Fragen zum Dataset

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von sonne75.

    Fragen zum Dataset

    Hallo zusammen,

    seit längerer Zeit schlage ich mich nun mit dem Dataset rum, ich habe mir immerwieder die Tuts von EDR angesehen, aber bei manchen sachen komm ich einfach nicht weiter.
    Ich hab mich nun dazu entschlossen einen Thrad zu eröffnen mit all meinen Fragen ...

    los gehts !


    1. Wenn ich in einer Table (Land, ISO-Ländercode) - diese an DGV gebunden ist und ich einen Eintrag auswähle, wie kann ich dann im 2. gebundenen DGV (Ländercode, Bundesland) die jeweiligen Bundesländer des ausgewählten Landes anzeigen lassen?
    2. Stellt euch vor, ich hab auf meiner form ein tabcontrol, auf der 1. Tabpage ein DGV mit einer Liste aller Kunden, wenn ich nun einen eintrag doppelklicke, will ich dass ich automatisch auf tabpage 2 springe und die daten in die maske geladen wird (maske = z.B. Textbox für Vorname, Nachname, Adresse, ....) muss ich dann folgendes machen?

    VB.NET-Quellcode

    1. dim tt = dsdaten.kunden
    2. for each row in tt
    3. if row.id = datagridview1.selectedrow(0).cells(0).value then
    4. textbox_vorname.text = row.vorname
    5. textbox_nachname.text = row.nachname
    6. ......
    7. end if



    3. Tabpage 1 -> kunde wird aus liste doppelgeklickt Tabpage 2 -> Button "Rechnung erstellen wird geklickt Tabpage 3 -> in eine Textbox soll z.B der VOrname stehen, wie mach ich dass dann ? auch wie oben (siehe pkt. 2) ?
    Oh, da musst du aber nochmal ein paar Sachen von EDR schauen. Die sind wirklich gut!

    Du greifst auf das DataGridView zu. Das ist nicht die viel angesprochene "typisierte Manier".

    Am besten schaust du hier nochmal: [VB.NET] die vier Views auf Video

    Zieh dir die Filmchen rein. Dein Land-Bundesland problem ist ein normaler Parent-Child View. Dafür brauchst du eigenltich keinen Code...

    windowsfan schrieb:

    2. Stellt euch vor, ich hab auf meiner form ein tabcontrol, auf der 1. Tabpage ein DGV mit einer Liste aller Kunden, wenn ich nun einen eintrag doppelklicke, will ich dass ich automatisch auf tabpage 2 springe und die daten in die maske geladen wird (maske = z.B. Textbox für Vorname, Nachname, Adresse, ....) muss ich dann folgendes machen?
    "EingabeMaske" ist prinzipiell ein DetailView.
    Es steht dir frei, einen DetailView auf einer anneren Tabpage anzulegen, als wo du den Datensatz selektierst. Dann musste nur noch was coden, dass bei Doppelklick die annere Tabpage selektiert wird.
    @ErfinderDesRades
    Möchte kein neues Thema aufmachen, desshalb schreibe ich hier...
    Ich habe eine Table wo firmendaten stehen, eine zweite in dieser ansprechpartner stehen.

    Wenn ich nun eine Firma ausgewählt habe, wie kann ich dann der StammdatenID in der Ansprechpartner Table die ID der ausgewählten firma geben, damit ich eine parentchild-view ermöglichen kann?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „windowsfan“ ()

    okay, also nochmal kurz:
    Ich habe 2 Tables

    StammDaten
    - ID
    - FIrma

    ANsprechpartner
    -StammDatenID
    -Name

    wie kann ich die StammDatenID in der Ansprechpartner Tabelle automatisch füllen lassen?
    Bilder
    • Unbenannt.JPG

      20,18 kB, 397×191, 133 mal angesehen

    ErfinderDesRades schrieb:

    das wird angezeigt, wenn ein Thread als erledigt markiert wurde.
    Nur musste ihn jetzt nochmal so markieren, weil wenn der TE nochmal postet, schließt die Forum-Software daraus, dass doch noch nicht erledigt war :P


    okay, ich schreibe einfach hier weiter, folgendes problem:
    Ich habe ienen Button der " Datenbank.StammDaten.Rows.Add()" ausführt, und in meinem Tabcontrol die Index 1 aufruft = eine eingabemaske der stammdaten.
    Wenn ich aber diesen button nochmal klicke, dann wird natürlich ein fehler geworfen, dass die id schon vorhanden ist, wie kann ich das beheben?
    Fällt mir auch jetzt erst auf: Das brauch er garnicht!
    Solange er DatasetOnly arbeitet, wird ja eh der komplette Datenbestand persistiert, und eine gezielte Identifikation eines einzelnen Datensatzes in der Persistenz-Schicht (DB/Datei) ist nicht nötig.

    Aber sobald er eine DB hinterlegen will fällt er damit natürlich auf die Nase.
    @ErfinderDesRades
    Es bezieht sich aber auf die oberste (also in der Logik, in der Bezeichnung ist das die untergeordnete Tabelle) Tabelle nur, oder? D.h. eine Tabelle braucht keine ID, wenn sie diese ID nirgendwo als Fremdschlüssel braucht, oder?
    Jo. IDs haben 2 Funktionen: Zum einen werden damit Beziehungen definiert.
    Die 2. Funktion gilt nur innerhalb von Datenbanken: Dort muß ein DS identifizierbar zu sein, damit er gezielt gelöscht oder geändert werden kann.

    Letzteres entfällt ja bei DatasetOnly: statt einzelne Datensatzes gezielt anzusprechen wird ja die ganze Datei neu erstellt.

    ABer ich empfehles aus Prinzip: Ein Datensatz kriegt immer einen Primkey. Es hat keinerlei Nachteil, aber wennmans vergisst, können Probleme auftauchen.

    IMO sollte man sich beim Datenmodell basteln insgesamt eine ganz schematische Vorgehensweise angewöhnen - grad als Anfänger.
    Wenn man dann sicherer ist, kann man immer noch in SpezialFällen davon abweichen, allerdings nur in gut begründeten Spezialfällen.
    Das Zeugs ist komplex genug, da muß man nicht durch allerlei Variationen sich den Durchblick noch zusätzlich erschweren.



    @Topic:
    dass die id schon vorhanden ist, wie kann ich das beheben?
    (Da hat einer beim ersten Film wohl nicht ganz aufgepasst, als ich da AutoIncrement eingestellt hab)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    ErfinderDesRades schrieb:

    IMO sollte man sich beim Datenmodell basteln insgesamt eine ganz schematische Vorgehensweise angewöhnen - grad als Anfänger.
    Wenn man dann sicherer ist, kann man immer noch in SpezialFällen davon abweichen, allerdings nur in gut begründeten Spezialfällen.
    Das Zeugs ist komplex genug, da muß man nicht durch allerlei Variationen sich den Durchblick noch zusätzlich erschweren.


    Ja, danke, da bin ich der gleichen Meinung, deswegen ist mir das Fehlen der ID sofort aufgefallen.