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
我尝试将所有行字段转换为字符串的列表,我得到了我需要的确切结果, 但它不适用于类对象。请帮帮我。
答案 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);
}