Отображение данных на основе пользователя из базы данных для циклов for или foreach (с использованием ядра ASP. NET) - PullRequest
0 голосов
/ 18 июня 2020

Это программа для учителей для отображения классов и создания отчетов для учеников (возможно, стоит упомянуть)

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

В настоящее время: все классы, созданные всеми учителями, отображаются на экране каждого учителя

Вопрос: как отображать классы на основе учителя, который в настоящее время авторизован в веб-приложении

текущие файлы кода

Модель для класса

    public class ClassModel
    {
        public String ClassID { get; set; }
        public String StudentID { get; set; }
        public String StaffID { get; set; }
        public String ClassName { get; set; }
        public String TeacherName { get; set; }
        public String ClassDesc { get; set; }
        public String QuarterName { get; set; }
        public String Outcome1 { get; set; }
        public String Outcome2 { get; set; }
        public String Outcome3 { get; set; }
        public String Outcome4 { get; set; }
        public String Outcome5 { get; set; }
        public String Outcome6 { get; set; }
        public String Outcome7 { get; set; }
        public String Outcome8 { get; set; }
        public String Outcome9 { get; set; }
    }
}

Контроллер учетной записи учителя

        public IActionResult TeacherAccount()
        {

            DBLogins dp = new DBLogins(_configuration);
            LinkedList<ClassModel> allClasses = dp.GetAllClasses();
            return View(allClasses);
        }

код, который я использую для отображения классов

 public LinkedList<ClassModel> GetAllClasses()
        {
            //Step #1 - Connect to the DB
            string connStr = _configuration.GetConnectionString("MyConnString");
            SqlConnection conn = new SqlConnection(connStr);
            conn.Open();

            //Step #2 - create a command
            string query = "SELECT StaffID,ClassName,QuarterName,ClassDesc FROM [dbo].[Class]";
            SqlCommand cmd = new SqlCommand(query, conn);

            LinkedList<ClassModel> allClasses = new LinkedList<ClassModel>();
            //Step #3 - query the DB
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                ClassModel classModel = new ClassModel
                {
                    StaffID = reader["StaffID"].ToString(),
                    ClassName = reader["ClassName"].ToString(),
                    QuarterName = reader["QuarterName"].ToString(),
                    ClassDesc = reader["ClassDesc"].ToString()
                };

                allClasses.AddLast(classModel);
            }

            //Step #4 - close the connection
            conn.Close();

            return allClasses;
        }

Foreach L OOP

 @foreach (OLS_Web_App.Models.ClassModel classes in Model)
                {
                
                    <div >
                        <div>@classes.ClassName</div>
                        <div>
                            <p >@classes.QuarterName</p>
                            <a href="@Url.Action("Class", "Home", new { ClassID = classes.ClassID })" >Go to Class</a>
                            <br>
                            <button asp-action="DeleteClass">Delete Class</button>
                        </div>
                    </div>
                   
                }
...