使用DataGrid视图时,索引超出了数组的边界

本文关键字:数组 边界 索引 DataGrid 视图 使用 | 更新日期: 2023-09-27 18:28:02

我正试图将数组直接绑定到网格视图控件,在那里我试图显示网格视图控件的详细信息。

我已经尝试了下面的代码,但它出现了一些错误。请帮我找到合适的解决方案。非常感谢。

代码:

protected void ddlCircle_SelectedIndexChanged(object sender, EventArgs e)
{
ShadingAnalysisDataSetTableAdapters.tbl_CadEngineersTeamTableAdapter cd;
cd = new ShadingAnalysisDataSetTableAdapters.tbl_CadEngineersTeamTableAdapter();
DataTable dt = new DataTable();
dt = cd.GetAvailableData(ddlCircle.SelectedValue); 
int x, y;
DataTable dt3 = new DataTable();
dt3 = cd.GetTeam();
y = dt3.Rows.Count;
x = dt.Rows.Count; 
DataTable dt2 = new DataTable();
dt2 = cd.GetAssignTeam(x);           
string[] strArr = new string[dt.Rows.Count];
int i = 0;
testc:                            
foreach (DataRow r in dt2.Rows)
   {                
     strArr[i] = r["Team"].ToString();
     i++;
     if (i >= x - 1)
     {
        break;
     }
     if (i >= y)
     {
        goto testc;       
     }          
   }
GridView2.DataSource = strArr[i];
GridView2.DataBind();
}

使用DataGrid视图时,索引超出了数组的边界

GridView2.DataSource = strArr[i];此行可能会产生错误,对吗?这是因为您在最后一次迭代中将i递增为dt2.Rows.Count + 1

写入此

if (i > 0) GridView2.DataSource = strArr[i - 1];

作为最后一行。