Retriving data from ListView control

Posted by Josh on Stack Overflow See other posts from Stack Overflow or by Josh
Published on 2010-04-15T12:14:35Z Indexed on 2010/04/15 12:23 UTC
Read the original article Hit count: 226

I have a ListView control set up in details mode with 5 columns. It is populated by code using the following subroutine:

            For j = 0 To 14
                cmd = New OleDbCommand("SELECT TeacherName, ClassSubject, BookingDate, BookingPeriod FROM " & SchemaTable.Rows(i)!TABLE_NAME.ToString() & " WHERE (((BookingDate)=" & Chr(34) & Date.Today.AddDays(j) & Chr(34) & ") AND ((UserName)=" & Chr(34) & user & Chr(34) & "));", cn)
                dr = cmd.ExecuteReader
                Dim itm As ListViewItem
                Dim itms(4) As String
                While dr.Read()
                    itms(0) = dr(0)
                    itms(1) = SchemaTable.Rows(i)!TABLE_NAME.ToString()
                    itms(2) = dr(1)
                    itms(3) = dr(2)
                    itms(4) = dr(3)
                    itm = New ListViewItem(itms)
                    Manage.ManageList.Items.Add(itm)
                End While
            Next

Note that this is not the full routine, just the bit that populated the grid.

Now I need to retrieve data from the ListView control in order to delete a booking in my database. I used the following code to retrieve the content of each column:

ManageList.SelectedItems(0).Text

But it only seems to work on index 0. If I do:

ManageList.SelectedItems(3).Text

I get this error:

InvalidArgument=Value of '3' is not valid for 'index'. Parameter name: index

I'm pretty much stumped, it seems logical to me that index 1 will point to the 2nd column, index 2 to the 3rd etc, as it's 0 based?

Any help would be appreciated, thanks.

© Stack Overflow or respective owner

Related posts about vb.net

Related posts about listview