У меня есть вопрос относительно Наримера в vb.net 2010VB.NET -> выпадающего случайный индекс
В моей базе данных у меня есть 4 поля: например:
idDetails | DetailsShortCode | Details_Explain | DetailsSortOrder
{autonum}1| DOA | Death on Arrival| 5
{autonum}2| NDI | No Display | 10
{autonum}3| QQA | In Research | 4
и т.д ..
Эти значения я вытаскиваю из dbase (mySQL) и вставляю в CheckedListBox
. Я отображаю значения как DetailsShortCode & "-" & Details_explain. Я использую [для цикла] для создания индексных чисел, потому что порядок сортировки основан на порядке сортировки деталей. Это означает, что VB.net получает «кормят» с результатами в следующем порядке:
idDetails | DetailsShortCode | Details_Explain | DetailsSortOrder
3 | QQA | " ... " | 4
1 | DOA | "...." | 5
2 | NDI | " ... " | 10
Если я положил это в ListBox, ошибка Получу является «3 неправильное значение„индекса“» в связи с тем, что VB.net ожидает, что CheckedListBox
(а также ComboBox
) индекс всегда находится в последовательном порядке, как и в 0,1,2,3,4..etc ..
проблема заключается в факт, что заказы в базе данных могут меняться, элементы могут меняться, и у меня есть поле в другой таблице, содержащей список, выделенный запятыми, выбранных деталей (например, 1; 10; 14; 12;) Это означает, что 1 всегда должно быть элемент с Prim aryKey 1, и что отображаемый элемент в этом индексе всегда должен быть одним и тем же ...
так что мне нужно знать, как я могу использовать Первичный ключ как индексный номер, и пусть VB.Net не бросает ошибка когда индекс в случайном порядке .., или дать вещи скрытое значение (например, в HTML и PHP), в котором я могу просто использовать [для цикла] индексов ..
Это это код я использую для вставки элементов в детали CheckedListBox
Function LoadComboBoxes(ByVal CB As String)
Dim SQLtext = ""
Select Case CB
Case "Details"
SQLtext = "Select " & _
"idDetails, " & _
"DetailsCode, " & _
"DetailsExplain, " & _
"DetailsSortOrder " & _
"FROM Details order by DetailsSortOrder"
Dim i = -1
Dim dr As MySqlDataReader
Dim cmd As New MySqlCommand(SQLtext, dbconn)
connect()
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
CLBDetails.Items.Clear()
While dr.Read
i += 1
CLBDetails.Items.Insert(i, .GetString(1) & " - " & dr.GetString(2))
End While
end select
end function
Откуда взялся 'CheckedComboBox'? ты его написал? – Plutonix
Показать код, в который вы вставляете элементы в список. Я уверен, что вам не нужен индекс, чтобы вставить что-нибудь. Простое добавление (добавление к концу) или привязка к списку должно быть достаточным. Кроме того, обычные элементы списка имеют свойство Tag для хранения объекта. –
CheckedComboBox на самом деле CheckedListBox (пожалуйста, извините, что я перепутал). У меня эта проблема с обычными ComboBoxes тоже, но кроме того факта, что этим не нужно поддерживать несколько выборов, последовательность отображения должна быть основана на пользователе .., поэтому проблема все та же, индекс # запутан -up .. – Fimlore