【问题标题】:Index outside of bounds of the array when using DataGrid View?使用 DataGrid 视图时索引超出数组范围?
【发布时间】:2014-10-28 11:42:23
【问题描述】:

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

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

代码:

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();
}

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

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

    写这个

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

    作为最后一行。

    【讨论】:

    • 现在错误没有显示,但是gridview没有显示任何值。
    猜你喜欢
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多