文本导入datagridview单元格,出现目录必须在集合的大小范围之内,不能超过该大小范围或小于零

文本导入datagridview单元格,出现索引必须在集合的大小范围之内,不能超过该大小范围或小于零
1,读取文本到datagridview
public static DataTable TxtToDataTable(string strFileName, char strSplit)
        {
            DataTable dtReturn = new DataTable();
                string[] strFileTexts = File.ReadAllLines(strFileName,System.Text.Encoding.UTF8);
                string[] strLineTexts = strFileTexts[0].Split(strSplit);
                for (int i = 0; i <strLineTexts.Length; i++)
                {
                    dtReturn.Columns.Add("Columns" + i.ToString());
                }
                for (int i = 0; i < strFileTexts.Length; i++)
                {
                    strLineTexts = strFileTexts[i].Split(strSplit);
                    DataRow dr = dtReturn.NewRow();
                    for (int j = 0; j < strLineTexts.Length; j++)
                    {
                        dr[j] = strLineTexts[j].ToString();
                    }
                    dtReturn.Rows.Add(dr);
                }
            }
2,读取绑定数据。
private void myButton1_Click(object sender, EventArgs e)
        {
            
                OpenFileDialog fd = new OpenFileDialog();
                fd.Filter = "角度文件(*.txt)|*.*";
                fd.DefaultExt = ".txt";
                DialogResult result = fd.ShowDialog();
                string file = fd.FileName;
                DataTable dtb1;
                dtb1 = TxtToDataTable(file,' ');
                anglecmd.DataSource = dtb1;
3,   索引出错的地方。while (MainV2.comPort.cs.Equals(Int32.Parse(this.anglecmd.Rows[j].Cells[0].Value.ToString().Trim()) - 1))
                {
                    i = this.anglecmd.Rows[j].Cells[1].Value.ToString();//值2
                    cmd(i);
            }
分析,文本文件导入到datagridview中的索引结构  a[0][0],a[0][1];
                                                                                         a[1][0],a[1][1];
a[0][0]=this.anglecmd.Rows[0].Cells[0].Value.ToString()  就得到了 第一行第一列的值,但是我在加载文本后,while();时出现第二行就无法索引的问题。按照我的理解,索引由0 开始 1结束,并没有越界,可是计算机就是报错。请教大神们了   
------解决方案--------------------
while (MainV2.comPort.cs.Equals(Int32.Parse(this.anglecmd.Rows[j].Cells[0].Value.ToString().Trim()) - 1))
                {
                    i = this.anglecmd.Rows[j].Cells[1].Value.ToString();//值2