2015-06-04 3 views
1

Мне нужно внести некоторые изменения в приложение, в котором есть проблемы с производительностью. Я запустил профайлер, и одна из проблем одна:Заполнение списка с помощью DataReader vb.net

SQL-запрос выполнен и хранится в DataReader. Запрос возвращает около 2000 строк.

затем цикл в то время как начать

Dim monSQL as IDataReader 
monSQL = a SQL Query 

Do While monSQL.Read 
    strArray(0) = 
    strArray(1) = 
    strArray(2) = 
    strArray(3) = monSQL("Something").ToString 
    strArray(4) = monSQL("Something").ToString 
    strArray(5) = monSQL("Something").ToString 

    If Not IsDBNull(monSQL("Something")) Then 
    strArray(6) = (monSQL("Something")) 
    strArray(7) = monSQL("Something")).ToString 
    strArray(8) = monSQL("Something").ToString 
    strArray(9) = monSQL("Something").ToString 
    strArray(10) = monSQL("Something").ToString 
    End If 

    objListItem = New ListViewItem(strArray) 
    objListItem.Tag = lngNoLot 
    ListView.Items.Add(objListItem) 
Loop 

В то время цикла, данные вставки в ListView

Это займет некоторое время, чтобы пойти Повсеместно петлю (около 10 сек)

Какая у меня возможность ускорить работу?

+1

код пожалуйста .... – Steve

+0

Если вы заполните DataTable вы можете использовать его в качестве Datasource для DataGridView и сэкономить много времени и кода – Plutonix

+0

бы я все еще могу установить флажок в начале каждой строки, чтобы выбрать определенную строку? –

ответ

1

Попробуйте подвешивания любой рисунок во время обновления цикла:

listView1.BeginUpdate() 
// your loop 
listView1.EndUpdate() 
Смежные вопросы