Индекс вне диапазона исключения в asp.net - PullRequest
0 голосов
/ 11 марта 2012

при попытке подключения к базе данных я написал следующий код в методе загрузки моей страницы:

    SqlConnection con = new SqlConnection(constring);
    SqlCommand cmd = new SqlCommand();
    cmd.CommandType = CommandType.Text;
    cmd.Connection = con;
    con.Open();
    cmd.CommandText = "select pid from pid";
    SqlDataAdapter da = new SqlDataAdapter();
    DataSet ds = new DataSet();
    DataTable dt = new DataTable();
    da.SelectCommand = cmd;
    da.Fill(dt);
    a = Convert.ToInt32(dt.Rows[0][0].ToString()) + 1;
    con.Close();
    return a;

и я получаю сообщение об ошибке в строке кода "a = Convert.ToInt32 (dt.Rows[0] [0] .ToString ()) + 1; "as: индекс вне диапазона исключений нет строки в позиции 0, как поступить?

1 Ответ

0 голосов
/ 11 марта 2012

Предположительно, ваш запрос не возвращает строк. Обработайте соответственно (если возможно, что запрос не возвращает строк, добавьте оператор if). В противном случае, возможно, что-то не так с вашим запросом (выбор столбца из объекта с тем же именем кажется неправильным).

int retVal = default( int );

if( dt.Rows.Count == 1 )
{
    retVal = (int)dt.Rows[0][columnName];
}

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