Member 13141551 Ответов: 1

Я хочу получить данные из базы данных в ASP.NET C# использует SQL reader, но в while loop index 0 не запускается в моем коде.


я хочу, чтобы для извлечения данных из базы данных в asp.net с помощью SQL читатель, но какое-то условие не работает должным образом, Пожалуйста, помогите мне,
while( red.Read())
{
  lblnumber.Text = red[0].ToString();
  lblcname.Text = red[1].ToString();
  lbltname.Text = red[2].ToString();
}

в цикле while с индексом 0 не выполняется в моем коде

Что я уже пробовал:

try
            {
                SqlConnection connn = new SqlConnection("@Data Source=.;Initial Catalog=Quiz_system;Integrated Security=True");
                connn.Open();
                SqlCommand sqlCmd = new SqlCommand("select sdt_reg_no, course_name,teacher_name fron tbl_std_reg_course where std_reg_no='" + Session["regnumber"] + "' And course_name='" + Session["coursename"] + "'", connn);
                SqlDataReader red = sqlCmd.ExecuteReader();
                while( red.Read())
                {
                    lblnumber.Text = red[0].ToString();
                    lblcname.Text = red[1].ToString();
                    lbltname.Text = red[2].ToString();
                }

                connn.Close();
            }
            catch(System.Data.SqlClient.SqlException ex)
            {
                string msg = "Already exist:";
                msg += ex.Message;
                throw new Exception(msg);
            }
            finally
            {
              
            }

njammy

Вы имеете в виду, что получаете исключение о нулевом индексном массиве вне границ или что-то подобное?
Пожалуйста, уточните это с помощью кнопки улучшить ссылку на вопрос на этой странице и обновите свой вопрос с точной проблемой, с которой вы столкнулись.

[no name]

Что вообще означает "in while loop at index 0 not run in my code"?

ZurdoDev

Что значит "не будет работать в моем коде" значит?

Richard Deeming

И если ваш while цикл не выполняется, это означает, что ваш запрос не вернул никаких записей.

Мы не можем сказать вам почему, потому что у нас нет доступа к вашей базе данных и мы понятия не имеем, какие значения вы запрашиваете.

1 Ответов

Рейтинг:
0

Patrice T

Нет решения вашего вопроса, но у вас есть еще одна проблема.
Никогда не создавайте SQL-запрос путем конкатенации с пользовательскими вводами, он называется "SQL-инъекция", он опасен для вашей базы данных и подвержен ошибкам.
Одна кавычка в имени - и ваша программа рухнет. Если пользовательский ввод типа "Брайан О'Коннер" может привести к сбою вашего приложения, то это уязвимость SQL-инъекции.
SQL-инъекция-Википедия[^]
SQL-инъекция[^]