在我的datatable
中,我将值分配给array
。但是在我的代码中,值没有被正确分配。
从我的datatable
,表格中有2行。但在分配时我得到错误
索引超出了数组的范围。
这是我的代码
if (DtGrid.Rows[IntPriCount]["control_type"].ToString().ToUpper() == "T")
{
//Array for storing the Control ID.
string[] StrArrPriTextID = DtGrid.Rows[IntPriCount]["control_id"].ToString().Split(',');
HidTextControl.Value += StrArrPriTextID[2].ToString() + ";"; //error line
//Array for storing the Function name.
string[] StrArrFun = DtGrid.Rows[IntPriCount]["fun_name"].ToString().Split(',');
//HTML Table row object.
HtmlTableRow ObjPriTr = new HtmlTableRow();
//HTML table cell object.
HtmlTableCell ObjPriTd = new HtmlTableCell();
ObjPriTd.InnerText = DtGrid.Rows[IntPriCount]["label_name"].ToString();
ObjPriTd.Attributes.Add("class", "label");
ObjPriTr.Cells.Add(ObjPriTd);
}
答案 0 :(得分:1)
control_id列可能包含一个没有逗号的值(如单个控件的ID)。
在这种情况下,Split()
位于以下行
string[] StrArrPriTextID = DtGrid.Rows[IntPriCount]["control_id"].ToString().Split(',');
数组StrArrPriTextID只有一个元素。
因此,您应该更改错误行
HidTextControl.Value += StrArrPriTextID[2].ToString() + ";";
到
foreach(string str in StrArrPriTextID)
HidTextControl.Value += str + ";";
希望有所帮助。