Это происходит потому, что вы постоянно добавляете новый параметр в коллекцию на каждом l oop. Метод не заменяет предыдущий параметр тем же ParameterName. Итак, запросом используется только первый.
Вам нужно очистить параметры внутри l oop
For i = 0 To Me.lstResourceTypes.Items.Count - 1
command.Parameters.AddWithValue("@ResourceType", lstResourceTypes.Items(i).ToString)
MsgBox(lstResourceTypes.Items(i).ToString)
command.ExecuteNonQuery()
command.Parameters.Clear()
Next
, но более правильный способ выполнить эту задачу - определить параметр вне l oop и измените только значение параметра внутри l oop. Предполагая, что параметр относится к столбцу строкового типа, вы можете написать
command.Parameters.Add("@ResourceType", OleDbType.VarWChar)
For i = 0 To Me.lstResourceTypes.Items.Count - 1
command.Parameters("@ResourceType").Value = lstResourceTypes.Items(i).ToString
command.ExecuteNonQuery()
Next
Обратите внимание, что я использую Add, а не AddWithValue. У второго есть множество недостатков, как описано здесь: AddWithValue is Evil