um meine Grundlagen bzgl. Dataset -> Bindingsource -> Datatable usw zu festigen, dachte ich ich mach mal eine kleine Übung. Da ja immer in den Threads die Rede davon ist die Daten nicht aus Controls zu fischen sondern aus Datatable oder Bindingsource wollte ich mal ganz von vorn anfangen.
Heraus gekommen ist eine Datatable die zur Laufzeit ganz plump befüllt wird.
Nun habe ich mit ein zwei SChleifen ermitteln wollen was in der Tabelle enthalten ist und das ganze in eine Message Box gepackt.
Derzeit scheitert mein Vorhaben aber noch an der Tatsache, dass ich die zur Laufzeit erschaffenen Columns nicht in die TextBox bekommen. Irgendwie stehe ich auf dem Schlauch.
Ich kann nicht zu String konvertieren (Option Strict on).
Kann mir jmd. einen Tipp geben?
Edit:
Zugegeben: Es macht wenig Sinn am Anfang zu ermitteln wieviele Columns die DT hat und später in der Ausgabe fix nur zwei Columns darzustellen. sauberer wäre es ja mit Sicherheit auch in der Msgbox entsprechend die Anzahl die in der Laufzeit erstellten Columns auszugeben.
Das kann ich jedoch dann noch nachholen wenn ich kapiert habe wo meine Fehler überhaupt liegt.
Ich will mit diesem Thread egtl. für mich die Grundlage schaffen zur Laufzeit eine Datatable flexibel zu entwerfen und mit den Daten um zu gehen.
Heraus gekommen ist eine Datatable die zur Laufzeit ganz plump befüllt wird.
Nun habe ich mit ein zwei SChleifen ermitteln wollen was in der Tabelle enthalten ist und das ganze in eine Message Box gepackt.
Derzeit scheitert mein Vorhaben aber noch an der Tatsache, dass ich die zur Laufzeit erschaffenen Columns nicht in die TextBox bekommen. Irgendwie stehe ich auf dem Schlauch.
Ich kann nicht zu String konvertieren (Option Strict on).
Kann mir jmd. einen Tipp geben?
VB.NET-Quellcode
- Public Class Form1
- Dim dt As New DataTable("MeineDaten")
- Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- dt.Columns.Add("Kostenart1")
- dt.Columns.Add("Kostenart2")
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAddRow.Click
- Dim r As DataRow = dt.NewRow
- 'Button fügt eine neue Row ein mit immer dem gleichen INhalt
- r.Item("Kostenart1") = "Auto"
- r.Item("Kostenart2") = "Auto2"
- dt.Rows.Add(r)
- End Sub
- Private Sub BtnListboxFüllen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnListboxFüllen.Click
- Dim AnzahlRows As Integer
- Dim RowInhalt As String = ""
- For i2 As Integer = 0 To dt.Columns.Count - 1
- 'hier hätte ich gerne die Spaltenüberschriten ermittelt welche in der vorherigen Sub fix festgelegt wurden
- Next
- AnzahlRows = dt.Rows.Count
- For i As Integer = 0 To dt.Rows.Count - 1
- RowInhalt = RowInhalt + " " + CStr(dt.Rows(i)("Kostenart1"))
- RowInhalt = RowInhalt + " " + CStr(dt.Rows(i)("Kostenart2")) + vbCrLf
- Next
- MessageBox.Show("Die Tabelle enthält " & AnzahlRows & " Zeilen " & vbCrLf & RowInhalt)
- End Sub
- End Class
Edit:
Zugegeben: Es macht wenig Sinn am Anfang zu ermitteln wieviele Columns die DT hat und später in der Ausgabe fix nur zwei Columns darzustellen. sauberer wäre es ja mit Sicherheit auch in der Msgbox entsprechend die Anzahl die in der Laufzeit erstellten Columns auszugeben.
Das kann ich jedoch dann noch nachholen wenn ich kapiert habe wo meine Fehler überhaupt liegt.
Ich will mit diesem Thread egtl. für mich die Grundlage schaffen zur Laufzeit eine Datatable flexibel zu entwerfen und mit den Daten um zu gehen.
Gruß Hannes
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hans im glück“ ()