在C#中添加到列表时,我得到了相同的对象:

List<Group> group = new List<Group>();
        Group groupclass=new Group();
        if (this.OpenConnection() == true)
        {
            sql_cmd = new MySqlCommand("listofgroup", sql_con);
            sql_cmd.CommandType = CommandType.StoredProcedure;
            sql_cmd.Parameters.AddWithValue("@userid", userid).Direction = ParameterDirection.Input;
            MySqlDataReader sdr = sql_cmd.ExecuteReader();
            while (sdr.Read())
            {
                groupclass.groupName = sdr.GetString("group_name");
                groupclass.groupID = sdr.GetString("ID");
                group.Add(groupclass);
            }
            this.CloseConnection();
        }
        return group;

最佳答案

按照您的代码立场,您只需创建一次对象。在将属性设置为while时,将在原始对象上设置值。

相反,您需要在while内创建对象

while (sdr.Read())
{
    Group groupclass = new Group();
    groupclass.groupName = sdr.GetString("group_name");
    groupclass.groupID = sdr.GetString("ID");
    group.Add(groupclass);
}

08-28 07:03