5 列の詳細モードで設定された ListView コントロールがあります。次のサブルーチンを使用するコードによって設定されます。
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」の値は「インデックス」には無効です。パラメータ名:インデックス
私はかなり困惑しています.0ベースであるため、インデックス1が2番目の列、インデックス2が3番目などを指すことは論理的に思えますか?
どんな助けでも感謝します、ありがとう。