DataGridView

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von reustli.

    Hallo!

    Du musst natürlich colIndex auf einen gültigen Spaltenindex setzen und in der Zelle darf natürlich kein Nothing stehen ...


    VB.NET-Quellcode

    1. if sb.Append(r.Cells.Item(colIndex).Value is nothing then
    2. sb.Append("Nothing" & ",")
    3. else
    4. sb.Append(r.Cells.Item(colIndex).Value.ToString & ",")
    5. end if



    Habe hier auch noch eine elegante Lösung per LINQ:

    VB.NET-Quellcode

    1. Dim colIndex As Int32 = 0
    2. Dim ret = From item In DataGridView1.Rows _
    3. Select CType(DirectCast(item, DataGridViewRow).Cells.Item(colIndex).Value, String)
    4. MsgBox(String.Join(",", ret.ToArray))


    Aber auch hier dürfen keine Nothing-Werte in den Cells stehen (ein nicht initialisierter String verweist auch auf nothing).
    oder aber die LINQ-Abfrage erweitern:

    VB.NET-Quellcode

    1. Dim colIndex As Int32 = 0
    2. Dim ret = From item In DataGridView1.Rows _Where CType(DirectCast(item, DataGridViewRow).Cells.Item(colIndex).Value isnot  nothing _
    3. Select CType(DirectCast(item, DataGridViewRow).Cells.Item(colIndex).Value, String)
    4. MsgBox(String.Join(",", ret.ToArray))


    Dann fallen aber leere Zelleneinträge ganz weg.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „vanitas-mundi“ ()