C# 错误:索引超出范围。必须为非负数且小于集合的大小

C# 错误:索引超出范围。必须为非负数且小于集合的大小,c#,asp.net,gridview,C#,Asp.net,Gridview,我正在将数据从数据库检索到gridviewtextbox数据库中有两行,但无法获取它: string sr_no; int rowIndex = 0; for (int i = 1; i <= dt1.Rows.Count; i++) { //extract the TextBox values TextBox box1 = (TextBox)Gridview1

我正在将数据从数据库检索到
gridview
textbox
数据库中有两行,但无法获取它:

    string sr_no;
    int rowIndex = 0;

            for (int i = 1; i <= dt1.Rows.Count; i++)
            {
                //extract the TextBox values
                TextBox box1 = (TextBox)Gridview1.Rows[rowIndex].Cells[1].FindControl("TextBox1");
                TextBox box2 = (TextBox)Gridview1.Rows[rowIndex].Cells[2].FindControl("TextBox2");
                TextBox box3 = (TextBox)Gridview1.Rows[rowIndex].Cells[3].FindControl("TextBox3");
                TextBox box4 = (TextBox)Gridview1.Rows[rowIndex].Cells[4].FindControl("TextBox4");
                TextBox box5 = (TextBox)Gridview1.Rows[rowIndex].Cells[5].FindControl("TextBox5");
                TextBox box6 = (TextBox)Gridview1.Rows[rowIndex].Cells[6].FindControl("TextBox6");
                TextBox box7 = (TextBox)Gridview1.Rows[rowIndex].Cells[7].FindControl("TextBox7");
                TextBox box8 = (TextBox)Gridview1.Rows[rowIndex].Cells[8].FindControl("TextBox8");

                box1.Text = dt1.Rows[i-1]["RD_PS_APPLab_Parameter"].ToString();
                sr_no = dt1.Rows[i-1]["RD_SR_No"].ToString();
                box2.Text = dt1.Rows[i-1]["Test"].ToString();
                box3.Text = dt1.Rows[i-1]["Test_Condition"].ToString();
                box4.Text = dt1.Rows[i-1]["Method"].ToString();
                box5.Text = dt1.Rows[i-1]["CTQ"].ToString();
                box6.Text = dt1.Rows[i-1]["Specification_RD_PS_AppLab"].ToString();
                box7.Text = dt1.Rows[i-1]["UOM"].ToString();
                box8.Text = dt1.Rows[i-1]["Remarks"].ToString();
                rowIndex++;
            }
字符串序号;
int rowIndex=0;

对于(inti=1;i有两个概率

1) 你的网格没有8个单元格

2) 循环的
不正确
而不是

for (int i = 1; i <= dt1.Rows.Count; i++)
            {
//...
}

用于(int i=1;你的行有9个单元格吗?你研究了什么来解决你的问题?你的视图比行数多了1行吗?第0行是什么?是什么在网格视图中创建了行?是的,每行有9个单元格,我的其余注释?如果我想猜的话,请阅读,
Gridview1
的行数比
dt1
的行数少你需要通过调试器逐步完成这一过程,看看它在哪里抛出异常,并调查原因。没有什么“明显”的错误。为什么它会从一开始?我认为这是他的逻辑:)@daveL-op references
dt1.Rows[i-1]
由于问题到处都使用
i-1
,您的修改肯定会导致最后一行被遗漏?我理解它看起来很奇怪,但我不认为这是问题所在。这个片段看起来像是错误的
.DataBind()
。仅此而已。
for (int i = 1; i < dt1.Rows.Count; i++)
            {
/..
}
for (int i = 0; i < dt1.Rows.Count; i++)
                {
    /..
    }