赋值时索引超出范围,必须为非负值并小于集合大小。参数名: index 情况是这样,新建一个datatable,从数据库中读数据及结构送到datatable中,用gridview显示datatable中的数据,正常,然后后台用timer计时器定期调用函数两秒钟对datatable中是数据进行改写一次,例如显示如下:
(从数据库中读出的值)   (后台不断在改动)              
   姓名 年龄              姓名 年龄              姓名 年龄      重复.......
   test1  22               test1  23             test1  24
   test2  11               test2  12             test2  13
我改写的时候直接 
foreach(DataRow dr in datatable) 
{
 if(dr["姓名"]=="test1")
   dr["年龄"]=(int)dr["年龄"]+1;
    
 if(dr["姓名"]=="test2")
   dr["年龄"]=(int)dr["年龄"]+1;
   
}刚开始还好,能看到 gridview中 数值在变化,没多久就报错了,追踪错误位置就在【dr["年龄"]=(int)dr["年龄"]+1】赋值这个地方,错误为:赋值时索引超出范围,必须为非负值并小于集合大小。参数名: index 很奇怪,datatable我一直在改写,没有增减行数列数,怎会索引超出范围呢,还请大家指教。
     

解决方案 »

  1.   

    (从数据库中读出的值) (后台不断在改动)  
      姓名 年龄------------- 姓名 年龄 -----------姓名 年龄 重复.......
      test1 22-------------- test1 23 ------------ test1 24
      test2 11 --------------test2 12 -------------test2 13
      

  2.   

    【dr["年龄"]=int.Parse(dr["年龄"])+1;
      

  3.   

    dr["年龄"]=int.Parse(dr["年龄"])+1;
      

  4.   


    不是啊 就是举了个例子 
       
      姓名 年龄------------> 姓名 年龄 
      test1 22------------>test1 23 
      test2 11 ----------->test2 12