Zeile in Datatable über Find-Methode suchen

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von manavu01.

    Zeile in Datatable über Find-Methode suchen

    Hallo Zusammen!

    habe folgendes Problem, ich hoffe ihr könnt mir da weiterhelfen. Ich habe eine Datatable mit 4 Spalten. In der letzten Spalte taucht der Wert 100 auf und genau diese Zeile in meiner Datatable möchte ich nun finden. Habe einiges probiert, aber es will nicht funktinonieren. Ich hoffe ihr könnt mir da weiterhelfen.

    Dim colarr(1) As DataColumn
    colarr(0) = dt2.Columns("Differenz")
    dt2.PrimaryKey = colarr
    Dim rw As DataRow = dt1.Rows.Find("100")
    TextBox1.Text = rw("buffertimestamp").ToString

    DataGridView2.DataSource = dt2

    mit Select habe ich das ebenfalls ausprobiert. Allerdings wird mir dann in der Messagebox System.Data.DataRow[] angezeigt.

    Dim rw() As Data.DataRow
    foundRows = dt2.Select("Differenz='100'")
    MessageBox.Show(rw.ToString)


    Gruß
    manavu01
    Sorry Leute,

    kleiner Kopierfehler. So sollte es richtig sein.

    Dim rw() As Data.DataRow

    rw= dt2.Select("Differenz='100'")

    MessageBox.Show(rw.ToString)

    Wenn ich das genauso eintippe, kommt wieder als Meldung in der Messagebox System.Data.Data.Row[].

    @VB1963: "Differenz" ist hier eine Spalte in der Datatable. In dieser Spalte ist der Wert 100 zu finden. Diese Zeile möchte ich nun in der Spalte Differenz mit dem select Befehl auslesen.

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

    Momentan ist in der Spalte "Differenz" nur ein einziger Wert=100.
    Aber wie soll ich in diesem Fall meine If Funktion einbinden? Versteh das momentan nicht so richtig, wie du das meinst.

    Dim rw() As Data.DataRow
    rw = dt2.Select("Differenz='100'")
    Dim str = rw(0).ToString
    TextBox3.Text = str


    Gruß
    manavu01
    Ich meine das so:

    VB.NET-Quellcode

    1. Dim rw = dt2.Select("Differenz=100")
    2. If rw.Length > 0 Then 'Es wurden Rows mit Differenz=100 gefunden
    3. Dim str1 = rw(0).IrgendEineDeinerTableColumns.ToString
    4. 'wenn noch eine weitere Row vorhanden ist
    5. Dim str2 = rw(1).IrgendEineDeinerTableColumns.ToString
    6. 'usw...
    7. Else
    8. 'Es wurden keine Rows gefunden
    9. End If
    Hallo VB1963,

    habe das momentan so gelöst. Ebenfalls mit der Eigenschaft "Length"

    Dim rw() As Data.DataRow
    rw = dt2.Select("Differenz='100'")
    MsgBox(rw.Length)

    Da bekomme ich die Anzahl der Wert die den Betrag 100 haben. In diesem Fall war der Wert=1 was auch stimmt. Allerdings möchte ich ehrlich gesagt die Zeilennummer wo der Wert enthalten ist. Hast du da vielleicht eine Idee?

    Gruß
    manavu01
    hast du meinen Codeauszug einmal genau angeschaut...
    rw(0) ist die 1. gefundene DataRow bei rw.Length=1
    rw(1) ist die 2. gefundene DataRow bei rw.Length=2
    usw...
    Und mit rw(x).IrgendEineDeinerTableColumns kannst du dann auf eine Column der gefunden DataRow zugreifen
    (wobei x zwischen 0 und rw.Length-1 sein muss, daher auch die Frage auf >0)
    hat es jetzt geschnackelt :)