2013-07-14 3 views
0

Моя структура базы данных таково:IndexOutOfRangeException был необработанным кодом пользователя

Имя столбца: Имя, Тип данных: VARCHAR (50)

Когда я бросил ввести его данные в визуальную студию он получил исключение

IndexOutOfRangeException не был обработан кодом пользователя: индекс находился за пределами массива.

using (var reader = command.ExecuteReader()) 
         return reader.Cast<System.Data.IDataRecord>() 
          .Select(x => new JobInfo() 
          { 

           Name = x.GetString(0), 


          }).ToList(); 

ответ

3

x.GetString(0), вероятно, ваша проблема. Массивы основаны на 0 на C#. Если элемент не имеет элементов, попытка получить «0-й» (первый) вызовет исключение. Это то же самое, что и попытка получить 9-й элемент в 8-элементном массиве.

0

Вы пытаетесь получить запись, если запись не существует. Проверьте, есть ли у вашего данных дата данных:

if (reader.HasRows) 
{ 
    //get the record here 
} 
+0

'.Select()' будет возвращать пустую коллекцию, если нет записей. Я не думаю, что это будет проблемой. –