.Net Core чтение базы данных SQL возвращает нулевые значения - PullRequest
0 голосов
/ 03 октября 2019

Во-первых, имейте в виду, что я новичок в .net core. Я пытаюсь прочитать данные из sql db, но для строк я получаю нулевые значения, а для целых я получаю 0 в качестве значения.

Интересно, что я получаю список массивов из 5 элементов (потому чтоиз списка лучших 5) и правильное количество столбцов, но, как я уже сказал, все значения либо нулевые, либо 0 ...

    public List<Student> Index()
    {
        List<Student> students = new List<Student>();
        string connectionString = configuraton.GetConnectionString("DefaultConnection");

        string query = "SELECT TOP 5 * FROM tblStudents";

        using (SqlConnection con = new SqlConnection(connectionString))
        {
            using (SqlCommand cmd = new SqlCommand(query, con))
            {
                con.Open();

                using (SqlDataReader reader = cmd.ExecuteReader())
                {

                    while (reader.Read())
                    {
                        Student student = new Student();
                        students.Add(student);
                    }
                }
            }
        }

        return students;

    }

Чтобы быть более понятным, это то, что я получаю для студента при достижении точки останова

  id = 0
  contactPerson = null
  contactPhone = null
  createdDate = {01.01.0001 12:00:00 AM}

Ответы [ 2 ]

0 голосов
/ 03 октября 2019

Согласно комментарию Панагиотиса Канавоса: вы создаете пустого ученика. Вам необходимо сопоставить reader поля с объектом вашего студента, например:

1003 *
0 голосов
/ 03 октября 2019

Вы перебираете все значения в считывателе, но не сохраняете значения в классе Student, это означает, что вы добавляете пустые классы в коллекцию students

 while (reader.Read())
  {
    Student student = new Student();
    students.Add(student);
  }

, вместо этого используйте что-то вроде этого:

while (reader.Read())
      {
        Student student = new Student();
        student.Id = Convert.ToInt32(reader["Id"]);
        student.Name = Convert.ToString(reader["Name"]);
        students.Add(student);
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...