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

删除数据时索引超出范围的问题
源代码如下:
private   void   SafeList_SelectedIndexChanged(object   sender,   System.EventArgs   e)
{
SqlConnection     MyConn2   =   new   SqlConnection(System.Configuration.ConfigurationSettings.AppSettings[ "SqlConnStr "]);
MyConn2.Open();
string   queryStr2   =   "select   count(*)   from   SF_Reback ";
SqlCommand   cmd=new   SqlCommand(queryStr2,MyConn2);  
int   count=Convert.ToInt32(cmd.ExecuteScalar());         //读书数据库长度;
//txt_titile.Text   =   count.ToString();
for(int   i=1;i <=count;i++)
{
CheckBox   chk=(CheckBox)this.SafeList.Items[i].FindControl( "chkID ");
if(chk.Checked)
{
txt_titile.Text   =   "1 ";
}
else   txt_titile.Text   =   "2 ";
//if(i==16)
//{Response.Write(i);}
}

点击了这个按纽之后,就说
索引超出范围。必须为非负值并小于集合大小。参数名:   index  
说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。  

异常详细信息:   System.ArgumentOutOfRangeException:   索引超出范围。必须为非负值并小于集合大小。参数名:   index



------解决方案--------------------
for(int i=1;i <=count;i++)
=======================
for(int i = 0; i < count; i++)
------解决方案--------------------
跟踪一下,看是哪里出了问题
------解决方案--------------------
for(int i=0;i <=count-1;i++)