gpt4 book ai didi

c# - 为什么我的列表只返回最后一行?

转载 作者:行者123 更新时间:2023-11-30 19:23:36 25 4
gpt4 key购买 nike

我正在使用一个列表并从数据库中填充它。

public List<HimHer.Models.Stories> GetAllImages()
{
try
{
using (SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString))
{
SqlCommand sqlcom = new SqlCommand("Select * from Images", con);
SqlDataAdapter adp = new SqlDataAdapter(sqlcom);
con.Open();
SqlDataReader dt = sqlcom.ExecuteReader();


List<HimHer.Models.Stories> list = new List<Stories>();

Stories st = new Stories();

while (dt.Read())
{


st.Image = dt["Image"].ToString();
st.Story = dt["Story"].ToString();
}


list.Add(st);

return list;




}
}
catch (Exception ex)
{

throw ex;
}
}

Stories 模型只有 2 个属性,例如 Story、Image。

但是我的列表只返回最后一行,为什么?我希望它返回所有行。

最佳答案

因为您只向列表添加一个元素:

Stories st = new Stories();
while (dt.Read())
{
st.Image = dt["Image"].ToString();
st.Story = dt["Story"].ToString();
}
list.Add(st);

相反,将每个 元素添加到列表中:

while (dt.Read()) 
{
Stories st = new Stories();
st.Image = dt["Image"].ToString();
st.Story = dt["Story"].ToString();
list.Add(st);
}

旁注:您的 catch block 是多余的,实际上不利于异常处理和调试。您应该完全删除它。

关于c# - 为什么我的列表只返回最后一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46708542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com