sql-server - .Net Core 读取 SQL 数据库返回空值
问题描述
首先,请记住我是 .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}
解决方案
您正在遍历阅读器中的所有值,但没有将值保存到 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);
}
推荐阅读
- c# - 编译器问题,努力使用 Dispatcher.RunAsync() 调用 UI 线程并返回一个值
- flutter - 如何在 Flutter 中设置 CupertinoTextField 边框颜色?
- python - Python子进程在关闭stdin之前打开readline
- javascript - 为什么我的应用程序在任何操作上都会重新渲染?
- django - 我必须将客户数据转移到预订。任何可能的方法?请告诉我
- javascript - 如何更改数组的克隆而不更改reactjs中的原始数组
- ssis - 使用 SSIS 处理 Db 中的空单元格
- bots - 动态更改 Microsoft Teams 机器人名称和图标
- python - 为什么python会显示名称tk未定义的错误?
- android - 如何处理 Kotlin 中的 500 错误并使用 Retrofit2 显示详细消息?