mystring仅填充最终记录

时间:2013-08-16 11:52:29

标签: c#

    Sqlreader = cmd.ExecuteReader();        //sqlreader reading rows from a database table 
        displaytable disp = new displaytable(); //class with fields regno,name,age,sex

        List<displaytable> mystring = new List<displaytable>();

        while (SQLreader.Read())
        {

            disp._regno = reader.GetString(0);
            disp._name = reader.GetString(1);
            disp._age = reader.GetInt32(2);
            disp._sex = reader.GetString(3);
            mystring.Add(disp);
          //  mystring.Insert(i++, disp);
        }
        con.Close();
        return mystring;
                                    "

上面的代码用于检索从数据表到列表的行。 样本行是              0001 aaaa 25男              0002 bbbb 26女              0003 cccc 28 male,这是预期的输出。

但不幸的是我的代码在某处错误,它给出了输出

         0003   cccc  28  male
         0003   cccc  28  male
         0003   cccc  28  male

我尝试将所有行字段转换为字符串的列表,我得到了我需要的确切结果, 但它不适用于类对象。请帮帮我。

1 个答案:

答案 0 :(得分:4)

您正在更新并插入displaytable的完全相同的对象。将对象的创建移动到循环中:

while (SQLreader.Read())
{
    displaytable disp = new displaytable();
    disp._regno = reader.GetString(0);
    disp._name = reader.GetString(1);
    disp._age = reader.GetInt32(2);
    disp._sex = reader.GetString(3);
    mystring.Add(disp);
}