У меня есть элемент управления ListView, настроенный в режиме подробностей с 5 столбцами. Он заполняется кодом с использованием следующей подпрограммы:
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
Обратите внимание, что это не полная процедура, а бит, заполняющий сетку.
Теперь мне нужно получить данные из элемента управления ListView, чтобы удалить бронирование в моей базе данных. Я использовал следующий код для извлечения содержимого каждого столбца:
ManageList.SelectedItems(0).Text
Но похоже, что он работает только с индексом 0. Если я это сделаю:
ManageList.SelectedItems(3).Text
Я получаю эту ошибку:
InvalidArgument = Значение '3' не является
действителен для «индекса». Имя параметра:
Индекс
Я в значительной степени озадачен, мне кажется логичным, что индекс 1 будет указывать на 2-й столбец, индекс 2 на 3-й и т. Д., Поскольку он основан на 0?
Любая помощь будет оценена, спасибо.