日期:2014-05-19  浏览次数:21031 次

如何解决“索引-1不是为负数,就是大于行数”这个异常???
使用dataSet,dataAdapter在对一行数据进行删除时,就出现这个问题了,代码如下:
      DataRow   deleteRow=this.ds.Tables[ "student "].DefaultView[this.Navigator.Position].Row;
      deleteRow.Delete();
      this.ds.AcceptChanges();
      this.da.Updata(ds.GetChanged(), "student ");


------解决方案--------------------
this.ds.AcceptChanges();是将数据集里面的东西标记为已经处理完了,所以后面的update将不起作用。
update方法会遍历每一行的状态,如果是改过,就调用相应的语句来进行增删改。你先调用this.ds.AcceptChanges();,表中的行将全部置为为改变状态。
但对于你说的问题,不是很清楚。关键在对表去第[this.Navigator.Position]行时,这个值可能有问题,你设置个断点看看this.Navigator.Position返回什么。可能为-1。