【问题标题】:.Net Core reading SQL database return null values.Net Core 读取 SQL 数据库返回空值
【发布时间】:2020-02-01 13:50:44
【问题描述】:

首先,请记住我是 .net 核心的新手。我正在尝试从 sql db 读取数据,但是对于字符串,我得到空值,对于整数,我得到 0 作为值。

有趣的是,我得到了包含 5 个项目的数组列表(因为选择前 5 个)和正确的列数,但就像我说的所有值都是 null 或 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}

【问题讨论】:

  • 您的代码为每个结果行创建一个新的空学生,但不使用任何行的值。
  • string query = "SELECT TOP 5 * FROM tblStudents" 你的ORDER BY呢?

标签: sql-server .net-core ado.net


【解决方案1】:

根据 Panagiotis Kanavos 的评论:您创建了空学生。您需要将reader 字段映射到您的学生对象,例如:

while (reader.Read())
{
    Student student = new Student();
    student.id = (int)reader["Id"];
    student.contactPerson = (string)reader["ContactPerson"];
    students.Add(student);
}

【讨论】:

    【解决方案2】:

    您正在遍历阅读器中的所有值,但没有将值保存到 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);
          }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-13
      • 1970-01-01
      • 2011-09-21
      • 2021-10-15
      • 1970-01-01
      • 2020-07-31
      • 1970-01-01
      相关资源
      最近更新 更多