就sorecordset这个简单的类,使用不好也有问题,今天,佟业真大师给大家演示了这一对象使用不好的错误
错误的写法:
- objRstXzdwLine.MoveFirst();
- while (!objRstXzdwLine.IsEOF())
- {
- objRstXzdwLine.Edit();
- bool dd = objRstXzdwLine.SetFieldValue(LanduseMap.LYK_XZDWMap.XMID, objBGTB.XMID);
- int fxzdwid = Convert.ToInt32(objRstXzdwLine.GetFieldValue(LanduseMap.LYK_XZDWMap.BSM));
- dd = objRstXzdwLine.SetFieldValue(LanduseMap.LYK_XZDWMap.FXZDWID, fxzdwid);
- dd = objRstXzdwLine.SetFieldValue(LanduseMap.LYK_XZDWMap.YXBZ, 1);
- if (dd)
- {
- int cao = objRstXzdwLine.Update();
- }
- else
- {
- }
- objRstXzdwLine.MoveNext();
- }
这样添加的结果有时候就添加不上去
正确的写法是这样的
- objRstXzdwLine.MoveFirst();
- while (!objRstXzdwLine.IsEOF())
- {
- bool dd = objRstXzdwLine.SetFieldValue(LanduseMap.LYK_XZDWMap.XMID, objBGTB.XMID);
- objRstXzdwLine.Edit();
- int fxzdwid = Convert.ToInt32(objRstXzdwLine.GetFieldValue(LanduseMap.LYK_XZDWMap.BSM));
- dd = objRstXzdwLine.SetFieldValue(LanduseMap.LYK_XZDWMap.FXZDWID, fxzdwid);
- dd = objRstXzdwLine.SetFieldValue(LanduseMap.LYK_XZDWMap.YXBZ, 1);
- if (dd)
- {
- int cao = objRstXzdwLine.Update();
- }
- else
- {
- }
- objRstXzdwLine.MoveNext();
- }
也就是说,结论:在sorecordset进行edit之后,update之前,不要对这个sorecordset进行操作