Zeilen einer Tabelle eines DataSets füllen.

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Zeilen einer Tabelle eines DataSets füllen.

    Hallo und guten Morgen,
    wäre schön, wenn mir jemand behilflich sein könnte.
    Wie schon aus dem Titel erkennbar, möchte ich eine Tabelle eines DataSets füllen und scheitere schon gleich am Anfang.
    Der Wert der Spalte ist vom Typ String.
    Ich erhalte die Meldung : Der Wert vom Typ "String" kann nicht in "DataSet1.Vokabeln.Row" konvertiert werden.
    Was mach ich bloß falsch?

    VB.NET-Quellcode

    1. Private Sub btnTest_Click(sender As Object, e As EventArgs) Handles btnTest.Click
    2. With DataSet1
    3. .Vokabeln.AddVokabelnRow("Englisch" & tbEnglisch.Text)
    4. End With
    5. End Sub


    *Topic verschoben*
    Schlimmer als ein Elefant im Porzellanladen, ist ein Igel in der Kondomfabrik und Nutella hat Lichtschutzfaktor 9,7 8)

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

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo und Danke für Deine Rückmeldung.
    War wirklich ein super Hinweis!

    VB.NET-Quellcode

    1. Private Sub btnTest_Click(sender As Object, e As EventArgs) Handles btnTest.Click
    2. Dim newVokabelnRow As DataSet1.VokabelnRow
    3. newVokabelnRow = DataSet1.Vokabeln.NewVokabelnRow
    4. newVokabelnRow.Deutsch = "Hallo"
    5. newVokabelnRow.Englisch = "Hello"
    6. DataSet1.Vokabeln.Rows.Add(newVokabelnRow)
    7. End Sub
    Schlimmer als ein Elefant im Porzellanladen, ist ein Igel in der Kondomfabrik und Nutella hat Lichtschutzfaktor 9,7 8)

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

    @RodFromGermany jetzt muss ich aber auch nochmal nachhaken,

    hiermit wollte ich Deinem VideoTut der FourViews nacheifern.

    VB.NET-Quellcode

    1. DataSet1.Vokabeln.AddVokabelnRow("Englisch" & tbEnglisch.Text)


    Und ich kann hinsichtlich des Zeilenfüllens keinen Unterschied erkennen.
    Es fehlt mir wahrscheinlich das nötige Verständnis.
    Interessieren würde es mich aber schon, warum es bei Dir funzt und bei mir halt nicht.
    Schlimmer als ein Elefant im Porzellanladen, ist ein Igel in der Kondomfabrik und Nutella hat Lichtschutzfaktor 9,7 8)
    Wenn Du ein typisiertes DataSet hast (tDS), dann gibt es normalerweise 2 AddRow-Überladungen. Eine akzeptiert eine fertige Row, eine andere will für die Konstruktion die Einzelteile für eine Tabellenzeile haben. Wenn Deine Tabelle z.B. (in folgender Reihenfolge) eine Int32-Spalte (z.B. ID) hat, eine Stringspalte (Name) und eine Date-Spalte (Geburtsdatum), dann musst Du diese Daten verfüttern. Die ID-Spalte allerdings nur, wenn sie nicht auf AutoIncrement gestellt ist, denn dann kümmert sich das tDS/Framework selber um den korrekten Wert.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Wenn der Code aus post#3 funzt, dann dürfte DataSet1.Vokabeln.AddVokabelnRow("Englisch" & tbEnglisch.Text) garnet kompilieren.
    Das deutet darauf hin, dass du Option Strict Off programmierst.
    Bei Option Strict ON bekämst du eine Fehlermeldung.
    machma Visual Studio - Empfohlene Einstellungen und poste die Fehlermeldung.

    Steamy2010 schrieb:

    VideoTut der FourViews
    ist vom @ErfinderDesRades.
    OK, er hat sich schon gemeldet.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vollzitat eines Vorposts durch Anredefunktion ersetzt ~VaporiZed

    @ErfinderDesRades entschuldige ich will nicht unhöflich klingen, aber ich denke Du hast den ersten Post nicht gelesen.
    Darum geht es ja. "Ich erhalte die Meldung : Der Wert vom Typ "String" kann nicht in "DataSet1.Vokabeln.Row" konvertiert werden."
    Option Strict ON ist aktiviert.

    Und ich hoffe, ich bin jetzt hinsichtlich des Herrausgebers des VideoTuts nicht in ein all zu großes Fettnäpchen getreten. Sorry, dafür!!
    Schlimmer als ein Elefant im Porzellanladen, ist ein Igel in der Kondomfabrik und Nutella hat Lichtschutzfaktor 9,7 8)

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

    Ich sach mal: Eine Lösungsantwort steht in Post#5
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed Danke nochmal für den Hinweis mit Post#5

    Also jetzt klappts,

    bei dieser Variante muss allen drei Spalten der Tabelle ein Wert zugeordnet werden.
    Das hatte ich bei der Anzeige der Überladungen übersehen.

    VB.NET-Quellcode

    1. With DataSet1
    2. .Vokabeln.AddVokabelnRow(tbDeutsch.Text, tbEnglisch.Text, "Datum")
    3. End With


    Ist mir allerdings auch nicht weiter aufgefallen, da dies bei der der Variante nicht nötig ist.

    VB.NET-Quellcode

    1. Dim newVokabelnRow As DataSet1.VokabelnRow
    2. newVokabelnRow = DataSet1.Vokabeln.NewVokabelnRow
    3. newVokabelnRow.Deutsch = tbDeutsch.Text
    4. newVokabelnRow.Englisch = tbEnglisch.Text
    5. DataSet1.Vokabeln.Rows.Add(newVokabelnRow)

    Schlimmer als ein Elefant im Porzellanladen, ist ein Igel in der Kondomfabrik und Nutella hat Lichtschutzfaktor 9,7 8)

    Steamy2010 schrieb:

    ich denke Du hast den ersten Post nicht gelesen.
    Jo, war richtig. Ichg bezog mich in meim Post nur auf die aktuellen, #3+#4 - dass der Fehler von #4 bereits in #1 benannt war, war mir dabei aussm Focus.

    Steamy2010 schrieb:

    Interessieren würde es mich aber schon, warum es bei Dir funzt und bei mir halt nicht.
    Jo, Methoden-Aufrufe funzen ganz allgemein immer nur dann, wenn man die Parameterliste auch richtig bedient.
    Also es funzt net, wenn man einer Methode Argumente übergibt, die sie nicht haben will, zuviele, zuwenig, oder solche anderen Datentyps.
    Aber ich glaub fast, das weisst du bereits - dass die Methode überladen ist - jaja, post#5... - ich muss jetzt auflegen.