如何将 SqlDataReader 的值存储在列表 <class> 中?
How to store value of SqlDataReader in a list<class>?
您好,我有一个 returns 列出的方法,但我得到了不想要的结果,请告诉我下面的代码有什么问题。
cmd2.CommandText = "select * from Blogs order by id desc";
SqlDataReader reader = cmd2.ExecuteReader();
List<Blogs> blogslist = new List<Blogs>();
while (reader.Read())
{
blog.Id = Convert.ToInt16(reader["id"]);
blog.email = reader["email"].ToString();
blog.description = reader["description"].ToString();
blog.date =Convert.ToDateTime(reader["date"]);
blogslist.Add(blog);
}
Blog 已在您的 reader.Read() 语句之外声明和实例化,您每次都在循环中更新相同的对象引用,这就是您在列表中看到重复对象的原因。
cmd2.CommandText = "select * from Blogs order by id desc";
SqlDataReader reader = cmd2.ExecuteReader();
List<Blogs> blogslist = new List<Blogs>();
while (reader.Read())
{
var blog = new Blogs();
blog.Id = Convert.ToInt16(reader["id"]);
blog.email = reader["email"].ToString();
blog.description = reader["description"].ToString();
blog.date =Convert.ToDateTime(reader["date"]);
blogslist.Add(blog);
}
如果解决了您的问题,请将其标记为您接受的答案。
您好,我有一个 returns 列出的方法,但我得到了不想要的结果,请告诉我下面的代码有什么问题。
cmd2.CommandText = "select * from Blogs order by id desc";
SqlDataReader reader = cmd2.ExecuteReader();
List<Blogs> blogslist = new List<Blogs>();
while (reader.Read())
{
blog.Id = Convert.ToInt16(reader["id"]);
blog.email = reader["email"].ToString();
blog.description = reader["description"].ToString();
blog.date =Convert.ToDateTime(reader["date"]);
blogslist.Add(blog);
}
Blog 已在您的 reader.Read() 语句之外声明和实例化,您每次都在循环中更新相同的对象引用,这就是您在列表中看到重复对象的原因。
cmd2.CommandText = "select * from Blogs order by id desc";
SqlDataReader reader = cmd2.ExecuteReader();
List<Blogs> blogslist = new List<Blogs>();
while (reader.Read())
{
var blog = new Blogs();
blog.Id = Convert.ToInt16(reader["id"]);
blog.email = reader["email"].ToString();
blog.description = reader["description"].ToString();
blog.date =Convert.ToDateTime(reader["date"]);
blogslist.Add(blog);
}
如果解决了您的问题,请将其标记为您接受的答案。