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.