我正在将数据读入人员类,然后将人员类存储到集合中。
ObservableCollection<Personnel> Personnels = new ObservableCollection<Personnel>();
Personnel personnel = new Personnel();...code省略了..。
while (myReader.Read())
{
personnel.PersonID = myReader.GetInt32(0);
personnel.PersonNameID = myReader.GetInt32(1);
personnel.PersonWage = myReader.GetInt32(2);
personnel.PersonWages = String.Format("{0:N0}", personnel.PersonWage);
// more personnel. items...
Personnels.Add(personnel); }我的问题是,人事部收集的全部都是只在最后一次读取的人事记录中填写的人事记录。假设100个人类记录在人员集合中,但都具有相同的数据,那就是最后一个人员类读取的数据。
为什么在循环中读取人员集合时没有填充每个不同的人员类?
发布于 2015-03-04 18:16:45
您引用的是同一个对象。将代码更改为:
while (myReader.Read())
{
personnel = new Personnel();
personnel.PersonID = myReader.GetInt32(0);
...
}附加信息:
创建类的对象时,分配对象的变量只包含对该内存的引用。通过一个变量所做的更改反映在其他变量中,因为它们都引用了相同的数据。
https://stackoverflow.com/questions/28861849
复制相似问题