Моя таблица просмотра не показывает все мои данные (MVC/mysql)
Привет Ребята,
Я создаю представление для трех таблиц для просмотра различных данных на основе идентификатора предложения.
Я вытащил их все, и все работало нормально, но когда я попытался присоединиться к ним, появились только две записи из общего числа 250 (эти две записи-записи, которые я связал с личным идентификатором, чтобы проверить, работает ли запрос)
Я использую MySQL, и когда я помещаю запрос в MySQL Workbench, он отлично работает и извлекает все данные, но когда я запускаю свой проект, он показывает только эти две записи, как я уже упоминал ранее.
Что я уже пробовал:
Here is my Context code: <pre> public List<PendingModel> GetAllNames() { List<PendingModel> list = new List<PendingModel>(); using (MySqlConnection conn = GetConnection()) { conn.Open(); //MySqlCommand cmd = new MySqlCommand("select * from pendingproposals", conn); MySqlCommand cmd = new MySqlCommand("SELECT lname, IRG, IRGDate FROM proposal LEFT JOIN pendingproposals USING(proposal_id) LEFT JOIN proposal_research_team USING(proposal_id) WHERE proposal.status in ('Unsubmitted','Dept Approval In Process', 'Admin Office In Process', 'JIT Request Received', 'JIT Submitted', 'Submitted to Sponsor', 'Sub 1/4: Awaiting Agreement', 'Sub 2/4: Under Negotiation', 'Sub 3/4: Partially Executed') AND role = 'Lead Principal Investigator';", conn); using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { if (!DBNull.Value.Equals(reader[2])) { list.Add(new PendingModel() { PILastName = reader["lname"].ToString(), IRG = reader["IRG"].ToString(), IRGDate = (DateTime)reader["IRGDate"] }); } } } } return list; }
мой контроллер:
public IActionResult Index() { PendingContext context = HttpContext.RequestServices.GetService(typeof(PendingTest.Models.PendingContext)) as PendingContext; return View(context.GetAllNames()); }
мой взгляд:
@model IEnumerable<PendingTest.Models.PendingModel> @{ ViewData["Title"] = "Pending Approvals"; } <center> <br /> I'm just a cute icon <br /> don't mind me</center> <h1>Pending Proposals</h1> <p> <a asp-action="Create">Create New</a> </p> <table class="table"> <thead> <tr> <th> PI </th> <th> IRG </th> <th> IRG Date </th> <th> </th> </tr> </thead> <tbody> @foreach (var item in Model) { <tr> <td> @Html.DisplayFor(modelItem => item.PILastName) </td> <td> @Html.DisplayFor(modelItem => item.IRG) </td> <td> @Html.DisplayFor(modelItem => item.IRGDate) </td> <td> <a href="url-here" class="btn btn-primary" style="margin:10px;"> Edit </a> <a class="btn btn-danger" href="#"> Delete </a> </td> </tr> } </tbody> </table>
Я был бы признателен за помощь
Richard Deeming
Какая таблица является role
столбец определен на?
И почему вы отфильтровываете нулевые даты в коде, когда вам было бы легче сделать это в своем запросе?
NextGratus
Роль-это часть таблицы proposal_research_team, которую я использую только для извлечения lname.
Для Null я получаю ошибку времени выполнения, когда пытаюсь выполнить, в которой мне пришлось обойти ее только для того, чтобы убедиться, что она работает сейчас.
NextGratus
всякий раз, когда я пытаюсь вытащить данные без оператора if, я получаю "систему".DBNull' to type 'система.DateTime'.' ошибка
Я хотел бы, чтобы все записи отображались даже с нулевыми значениями, так как я хочу, чтобы пользователь позже вставил их, если они недоступны, используя кнопку редактирования, которую я использую в представлении.