средство чтения данных sql, показывающее на одну запись меньше выходных данных sql-запроса

#asp.net

#asp.net

Вопрос:

я создал простую хранимую процедуру для выбора всех записей, название которых будет похоже на ‘% search text%’. хранимая процедура возвращает правильные результаты. Но когда я попытался отобразить эти результирующие наборы в gridview с помощью sqldatareader, оно заполнило на одну запись меньше. Помогите, пожалуйста.

Комментарии:

1. Дайте нам свой код. Это ошибка в вашем коде, а не ошибка проектирования, поэтому мы не можем сказать вам, как это исправить, кроме как «найти ошибку», если вы не предоставите нам код.

2. Вы берете истинное количество из обоих результатов? Или вы берете последний индекс? Если это индекс на основе нуля, это может представлять несоответствие.

Ответ №1:

 SqlConnection conn = new SqlConnection(connectionString);

SqlCommand command = new SqlCommand("select * from yourtable where yourcol like @parm" );
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@parm", searchText);

conn.Open();
command.Connection = conn;
SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
GridView1.DataSource = reader;
GridView1.DataBind();
  

если вы выполняете цикл через SqlDataReader, он основан на нуле.