首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么解决“索引-1不是为负数,就是大于行数”这个错误?

2012-01-16 
如何解决“索引-1不是为负数,就是大于行数”这个异常???使用dataSet,dataAdapter在对一行数据进行删除时,就

如何解决“索引-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。

热点排行