繁体   English   中英

为什么在我的视图中出现 null 指针错误 model ASP.NET MVC

[英]Why am I getting a null pointer error in my view model ASP.NET MVC

我目前正在尝试从数据库中读取数据并将该数据发送到列表中,以便可以在列表中显示数据项但是,在我的 foreach 循环附近的视图中出现 null 指针错误。

Controller:

public ActionResult Index()
    {

        try
        {
            connection.Open();
            SqlCommand myCommand = new SqlCommand("SELECT Firstname, ExerciseName, PR_Weight FROM Users, Exercises, PR WHERE Exercises.ExerciseID = PR.ExerciseID AND PR.Username = Users.Username AND Firstname = 'Evan' ", connection);
            SqlDataReader myReader = myCommand.ExecuteReader();
            Globals.PRList.Clear();
            while (myReader.Read())
            {
                PRViewModel pr = new PRViewModel();

                pr.PR_ID = (int)myReader["PR_ID"];
                pr.Username = myReader["Username"].ToString();
                pr.ExerciseID = (int)myReader["ExerciseID"];
                pr.PR_Weight = (int)myReader["PR_Weight"];
                pr.PR_Date = myReader["PR_Date"].ToString();
                pr.Exercises.exerciseID = (int)myReader["ExerciseID"];
                pr.Exercises.exercsieName = myReader["ExerciseName"].ToString();
                Globals.PRList.Add(pr);
            }
        }
        catch (Exception err)
        {

            ViewBag.Status = 0;
        }
        finally
        {
            connection.Close();
        }

        return View(Globals.PRList);
    }

全局 Class:

public static class Globals
{
    public static string myConnection = @"Data Source=TYRONSSPEEDYBOY\SQLEXPRESS02;Initial Catalog=PR_Tracker_DB1;Integrated Security=True";
    public static List<PRViewModel> PRList = new List<PRViewModel>();
}

索引视图:

 @foreach (PRViewModel pr in Model)
{
<tr>
    <td>@pr.PR_ID</td>
    <td>@pr.Username</td>
    <td>@pr.ExerciseID</td>
    <td>@pr.PR_Weight</td>
    <td>@pr.PR_Date</td>

PRViewModel:

public PRViewModel()
    {
        Exercises = new ExerciseViewModel();
    }

    public int PR_ID { get; set; }
    public string Username { get; set; }
    public int ExerciseID { get; set; }
    public int PR_Weight { get; set; }
    public string PR_Date { get; set; }
    public ExerciseViewModel Exercises { get; set; }

你 select 这些字段来自数据库

SELECT名字,ExerciseName,PR_Weight

但是您然后 go 读取读取器中不存在的几个值(因为您的查询没有返回它们)

  • PR_ID
  • 用户名
  • 项目清单
  • 运动编号
  • PR_重量
  • PR_Date
  • 运动编号
  • 练习名称(您的查询中仅存在此名称)

尝试更正您的查询。 您的代码还假设这些字段都不是数据库中的 null,如果它们正在转换可能会失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM