Почему ошибка индексации вне диапазона в объекте чтения - PullRequest
0 голосов
/ 31 января 2019

enter image description here

Результирующий набор executeReader представляет собой список элементов

while (reader.Read())
{
    mailbody +=
        "<tr>" +
        "<td>" + reader["DevName"].ToString() + "</td>" +
        "<td>" + reader["DevId"].ToString() + "</td>" +
        "<td>" + reader["LocationID"].ToString() + "</td>" +
        "<td>" + reader["LocationName"].ToString() + "</td>" +
        "<td>" + reader["SubLocationID"].ToString() + "</td>" +
        "<td>" + reader["IPV6"].ToString() + "</td>" +
        "<td>" + reader["LastConnected"].ToString() + "</td>" +
        "<td>" + reader["LastDisconnected"].ToString() + "</td>" +
        "<td>" + reader["Online"].ToString() + "</td>" +
        "<td>" + reader["HardwareSerialNumber"].ToString() + "</td>" +
        "<td>" + reader["ServiceProviderID"].ToString() + "</td>" +
        "<td>" + reader["DateLastModified"].ToString() + "</td>" +
        "</tr>";
}

enter image description here

это набор результатов из сохраненного процесса

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Либо укажите столбец с именем 'LocationName' в вашей хранимой процедуре, либо удалите строку

   "<td>" + reader["LocationName"].ToString() + "</td>" +

Это часть сообщения об ошибке, сообщающая, какой столбец не удалось найти:

enter image description here

РЕДАКТИРОВАТЬ: может быть еще несколько столбцов, которые не соответствуют выводу хранимой процедуры, но все, что вам нужно сделать, это посмотреть @ дополнительная информационная частьвашей ошибки.

EDIT2: При поиске @ вашего набора результатов из хранимой процедуры у него также будут проблемы с поиском столбцов: «LastConnected» и «LastDisconnected», поэтому решение будет таким же, удалите эти строки или переименуйте его (как в примере ниже) к именам столбцов, предоставленным вашей хранимой процедурой

    "<td>" + reader["LastConnTime"].ToString() + "</td>" +
    "<td>" + reader["LastDisconnTime"].ToString() + "</td>" +
0 голосов
/ 31 января 2019

В вашем SP отсутствует несколько столбцов, на которые вы ссылаетесь:

"<td>" + reader["LocationName"].ToString() + "</td>" +
"<td>" + reader["LastConnected"].ToString() + "</td>" +
"<td>" + reader["LastDisconnected"].ToString() + "</td>" +

Последние 2, вероятно, означают LastConnTime и LastDisconnTime.Убедитесь, что имена соответствуют 100%.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...