初学者提问:SqlDateReader如何读取多行记录

菜鸟提问:SqlDateReader怎么读取多行记录?
我写的C#代码如下:

List<Ex_User> exUserList = new List<Ex_User>();
Ex_User exUser = new Ex_User();

string strSql="select ID,Name,LOGINNAME,PASSWORD,CGROUP,VALIDSTATUS from UM_User";

string strConn=@"Data Source=.;Initial Catalog=usermanagement;User  Id=sa;Password=111";
            using (SqlConnection conn = new SqlConnection(strConn))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sbSql.ToString();
                    SqlDataReader reader = cmd.ExecuteReader();
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            exUser.ID = Convert.ToInt64(reader["id"]);
                            exUser.NAME = reader["NAME"].ToString();
                            exUser.LOGINNAME = reader["LoginName"].ToString();
                            exUser.CGROUP = (int)reader["cGroup"];
                            exUser.VALIDSTATUS = (int)reader["ValidStatus"];
                            exUser.PASSWORD = reader["Password"].ToString();
                            exUserList.Add(exUser);
                        }
                    }
                }
            }
            return View(exUserList);


结果发现exUserList中倒是有多行记录,但这多行记录都是一样的,都和最后一行记录相同。调试了一下发现,执行while循环时,读取第二行的同时,第一行的对应值就会被覆盖。也就是当读取第二行的exUser.ID时,exUserList中已记录的第一行的exUser.ID值会同时改变。知道问题所在了,但不知道应该怎么修改,还望多多指点!先谢过!
ExecuteScalar还不知道怎么用,在这儿应该不能用吧?
C#  SqlDateReader  c# SqlDateReader 读取多行记录 SqlDateScalar

------解决方案--------------------
exUser = new Ex_User();把这个粘贴在while里面就好了。初学者提问:SqlDateReader如何读取多行记录