2016-07-01 1 views
1

Мне нужна помощь слишком много.«Индекс 0 является отрицательным или превышенным числом строк» ​​ошибка C#

Я получаю следующее исключение:

индекс 0 либо отрицательный или выше строки подсчета ошибок

Я исследовал в StackOverflow и Google, но я не мог исправлена ​​ошибка.

Мой код:

if (lb_Gmy.SelectedItems.Count > 0) 
{ 
    string gmyquery = "Select * from tblA (nolock) where ParameterID = 2 and Status = 1"; 
    DataView dataw = new DataView(ReturnTable(gmyquery)); 

    foreach (string item in lb_Gmy.SelectedItems) 
    { 
     dataw.RowFilter = "Value = '" + item + "'"; 
     gmy += dataw[0]["ParamValue"].ToString() + ","; 
    } 

    gmy = gmy.Substring(0, gmy.Length - 1); 
} 

Но я не получаю сообщение об ошибке в этом коде:

if (lb_Fg.SelectedItems.Count > 0) 
{ 
    string gmyquery = "Select * from tblA (nolock) where ParameterID = 2 and Status = 1"; 
    DataView dataw = new DataView(ReturnTable(gmyquery)); 

    foreach (string item in lb_Fg.SelectedItems) 
    { 
     dataw.RowFilter = "Value = '" + item + "'"; 
     findingGmy += dataw[0]["ParamValue"].ToString() + ","; 
    } 

    findingGmy = findingGmy.Substring(0, findingGmy.Length - 1); 
} 

Они смотрят одинаково. Я так смущен. В чем проблема? Скажи мне, пожалуйста.

+0

что lb_Gmy/lb_Fg .Вы может получить в этом only.where вы получаете error.Need дать некоторые детали – Vicky

+0

они являются ListBox. Я получаю ошибку в цикле foreach – pseudocode

+0

Просто обратите внимание, что вы можете отключить весь цикл foreach и подстроку, которая следует очистить, используя 'string.join()'. Взгляните на [этот вопрос и ответ] (http://stackoverflow.com/questions/3610431/string-join-on-a-listint-or-other-type). –

ответ

2

Это означает, что DataView, dataw пуст (запрос не возвращает записей). Поэтому перед тем, как получить доступ к значению, вам необходимо проверить «Пусто».

DataView dataw = new DataView(ReturnTable(gmyquery)); 
if (dataw!=null && dataw.Count > 0) 
{ 
    // Your code here 
} 
Смежные вопросы