Typ DataSet nutzen/Daten in Typisiertes Dataset füllen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Haudruferzappeltnoch.

    Typ DataSet nutzen/Daten in Typisiertes Dataset füllen

    Hallo,

    ich habe ein DataSet Gerüst
    DataSet1
    DataTable1 6 Spalten
    DataTable2 6 Spalten

    Bei den Spalten komme ich schon nicht weiter, wie werden die angesprochen?
    Wenn ich jetzt den Wert 1 in DataTable für Spalte 2 in Zeile 2 haben möchte wie mache ich das?

    Viele Grüße

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Also hast du sowas?



    Mit konkreten angaben hältst du dich ja bedeckt. Deshalb finde ich es mehr als schwierig dir zu antworten.
    Üblicherweise werden Datsets im Desingner erzeugt und auch über den Designer auf eine Form gezogen. Dann hat man die Bindings die man benötigt auch schon da.
    Man muss nur wissen, dass alles was man mit dem Dataset anstellt, grundsätzlich nur genau in dieser Instanz des Dataset passiert.
    Daher ist es wichtig zu wissen, wie ganz genau deine Vorgehensweise ist. Also von welcher Form aus machst du das was du machen willst.
    Willst du das aus einer anderen Klasse heraus machen, dann musst du der Klasse das Dataset übergeben, sonst weiß die andere Klasse nichts von den Daten, die du grade am Wickel hast

    Mit C#-Pseudotext siehst das adden bei mir per Code dann so aus, VB ist geringfügig anders:

    Quellcode

    1. testDatset1.Kunden.AddKundenRow(
    2. Name: "Müller",
    3. Vorname: "Walter",
    4. Strasse: "Waldweg 5"
    5. Ort: "Waldstadt",
    6. Postleitzahl: "47111");
    7. }


    Statt die Tabelle per code zu füllen, kannst du die Tabelle per Drag&Drop auch einfach auf eine Form ziehen, dann hast du das Binding und eine DGV auf der Form und du kannst los-erfassen.
    Ich hab ja auch selbst nichts konkretes an der Hand bisher. Händisch möchte ich die Daten nicht erfassen, das muss schon automatisch gehen, also per Code.

    Also ich hab jetzt das Binding und das DataSet auf der Form, aber im dgv wird keine Änderung angezeigt, ich habe im Load_Event einfach mal eine Reihe angefügt. Ist aber nichts zu sehen beim Aufrufen. Ich denke beim dgv sollte im Form-Designer eigentlich auch schon die Spaltenbeschriftungen zu sehen sein.

    Ja damit funktionierts, sowas habe ich auch gesehen, aber das ist über das Menü gar nicht mehr zu finden oder wie?

    Die Primärschlüssel Spalte kann ich nicht angegeben da ich AutoIncrement an habe, ich dachte die zählt er automatisch, er zählt aber in die negative Richtung -1 -2 ...
    Ich schätze mal das liegt an den Einstellungen AutoIncrementSeed -1 und AutoIncrementStep -1. Die wurden automatisch festgelegt, ist das normal?

    Dann zählt er auch direkt weiter hoch wenn ich auf die unterste leere Zeile klicken, lassen sich manueller Interaktionen deaktivieren? Ahja im SmartTag des DGV

    Dann müsste ich noch wissen wie ich die Werte eines Eintrags anspreche, mit Tab1.Rows(1).Item(2) lande ich bei einem Objekt
    und mir ist nicht ganz klar warum ich da einfach Zahlen reinschreiben kann. Ich schätze die Antwort ist Datentypen sind auch Objekte.
    Aber irgendwie muss sich die Zelle doch von ihrem Inhalt unterscheiden, oder?

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

    Haudruferzappeltnoch schrieb:

    Ja damit funktionierts, sowas habe ich auch gesehen, aber das ist über das Menü gar nicht mehr zu finden oder wie?
    Doch - VS2017: Menü --> Ansicht --> Weitere Fenster --> der 2. Eintrag

    Haudruferzappeltnoch schrieb:

    Die Primärschlüssel Spalte kann ich nicht angegeben da ich AutoIncrement an habe


    Haudruferzappeltnoch schrieb:

    Einstellungen AutoIncrementSeed -1 und AutoIncrementStep -1. Die wurden automatisch festgelegt, ist das normal?
    Ja
    Vielen Dank soweit.

    Eine Frage hätte ich noch dazu:

    Wenn ich mit einem DataAdapter meine typ. DataSet Vorlage befülle DataAdapterTest.Fill(DataTable1)
    Bleiben die Datentypen, die ich festgelegt habe für DataTable1 so erhalten?
    Und wenn ein Eintrag nicht zu dem Datentyp passt, sagen wir Spalte 2 ist Integer und der DataAdapter will da einen String reinwerfen, dann sollte es eine Fehlermeldung geben oder?
    Du denkst immer noch untypisiert in für dich festgelegten Spalten und Zeilen, so wie man auf eine Excel-Zelle zugreifen würde.
    Du gibst dem Kind doch einen Namen wie "Name", "Ort", "Teilenummer", "Lagerort" oder "Bezeichnung" und du solltest auch immer diese Namen verwenden, nie Nummern weil dann bist du 100%ig wieder untypisiert unterwegs.

    Zur Frage selbst weiß ich nicht so viel zu sagen, habe so gut wie null Erfahrung mit Datenbanken und weiß nichts über diese Datenadapter. Spätestens wenn du "Metwurst" in einen Integer reinprügeln willst, wird es knallen.
    Ja aber es hilft euch doch nicht weiter wenn ich die Namen statt "Spalte 2" zur Erklärung benutze. xD Das verwirrt doch eher.
    Dass es knallt wollte ich auch genau versichert haben,..
    ..nicht dass da der Typ auf einen String extra für "Metwurst" geändert wird. Es soll ja auch Dinge geben wie Form1.Show....
    Du definierst doch den Datentyp. Ich verstehe dein Problem grad nicht. Je nach Datenquelle kann es bestenfalls sein, dass die Daten selbst nicht dem Typ entsprechen, der vereinbart ist. Dann knallt es halt.
    Oder du prüfst die Daten und schmeist Müll weg, was ich beim Daten von Altsystem oft machen muss. Oder die Daten sind in Objekten gekapselt und du musst sie erst in den Datentyp casten, oder oder.

    Du wirst deinen eigenen Code bald schon nicht mehr leseen können bzw. wirst viel Zeit benötigen, den auseinander zu klamüstern. Was an Table.row.column[j].value nun lesbar sein soll weiß ich nicht.