定义对象p0103,数组 records ,然后给通过循环给数组赋值,赋值后前面数组的值被后面的覆盖,请问什么原因?
for (int i = 0; i < dgvShuJuMingXing.Rows.Count; i++)
            {
                p0103.INVENTORY_ID = txtWuLiaoBianHao.Text;                p0103.MATERIAL_BARCODE = dgvShuJuMingXing.Rows[i].Cells[1].Value.ToString();                p0103.INVENTORY_QUANTITY = float.Parse(dgvShuJuMingXing.Rows[i].Cells[4].Value.ToString());                records[i] = p0103;
            }            pdservice.UpdateP0103List(records);

解决方案 »

  1.   

    这个 应该是存储过程 的参数 吧
    0103是 存储过程编号?
    猜对没。。调试一下,看看i 的变化,和records 的count
      

  2.   

    pdservice.UpdateP0103List(records);
    原因是为这做这个事情
      

  3.   

    p0103是对象,record是数组,record的个数是变化的,record[i]=p0103,当p0103变化的时候,数组的值变化,但是前边已变化的值没有起作用,最后的值将其覆盖,举例说明 假设p0103.INVENTORY_ID =1,
    p0103.MATERIAL_BARCODE=1,p0103.INVENTORY_QUANTITY =1,此时record[0]为1 1 1
    当p0103为2,2,2时,此时record[1]为2 2 2,但是record[0]的值也变为了2 2 2,什么原因???