soRecordset循环中删除研究

  1. soRecordset rs_a = dv_a.Query("2>1"truenull"");
  2.                         if (rs_a != null)
  3.                         {
  4.                             int rsCnt = rs_a.RecordCount;
  5.                             if (rsCnt > 0)
  6.                             {
  7.                                 rs_a.MoveLast();
  8.                                 for (int i = rsCnt;i>0 ; i--)
  9.                                 {
  10.                                     //Console.WriteLine(rs_a.GetFieldValueText ("smid"));
  11.                                     Console.WriteLine(rs_a.GetID());
  12.                                     if (i == 3)
  13.                                     {
  14.                                         rs_a.Delete();
  15.                                         Console.WriteLine(rs_a.GetID());
  16.                                     }
  17.                                     rs_a.MovePrev();
  18.                                 }
  19.                             }
  20.                             Marshal.ReleaseComObject(rs_a);
  21.                             rs_a = null;

结论,删除之后,指向空,此时moveprev就是指向上一条记录,但是recordcount减少

你可能感兴趣的:(null)