【发布时间】:2014-08-02 14:15:31
【问题描述】:
我有一个从我的数据库中检索多个结果的方法,我想将这些结果中的每一个作为一个对象返回到我的页面,但是目前它只是返回 sql 命令的最后一个结果。
我页面上调用该方法的代码:
Personen persoon1 = Personen.GetOneItem(int.Parse(TextBox_id.Text));
方法代码:
public static Personen GetAllPersonWithID(int id)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["RestaurantConnection"].Connection
String;
SqlCommand cmd = new SqlCommand("SELECT * FROM Personen where reservering_id=" + id, con);
con.Open();
SqlDataReader rdr = cmd.ExecuteReader();
Personen Item = new Personen();
while (rdr.Read())
{
Item.id = Convert.ToInt32(rdr["id"]);
Item.menu_id = Convert.ToInt32(rdr["menu_id"]);
Item.reservering_id = Convert.ToInt32(rdr["reservering_id"]);
}
con.Close();
return Item;
}
而且它只返回对象中的最后一个结果。
提前致谢
【问题讨论】:
-
什么是
Personen?听起来好像已经是Person的集合了,所以你必须在循环中填充它。 -
你需要返回一个personen列表,你只是返回一个
-
我猜你想要一个
List<Personen>,然后需要修改while (rdr.Read())内容以添加到每一行的列表中。 -
Tim,在荷兰语中的意思是人。然而,这并不相关。此方法检索人们选择的菜单及其预订编号。