【发布时间】:2013-03-05 00:48:26
【问题描述】:
我正在尝试使用 row[] 在 DataTable CartDT 中添加行,它是一个字符串数组。
DataTable CartDT = new DataTable();
public void DataTableColumn()
{
CartDT.Columns.Add("Product_Name", typeof(string));
CartDT.Columns.Add("Product_ID", typeof(string));
CartDT.Columns.Add("ItemQTY", typeof(string));
CartDT.Columns.Add("Price", typeof(string));
CartDT.Columns.Add("TotalPrice", typeof(string));
}
protected void AddToCart(object sender, GridViewCommandEventArgs e)
{
string[] arg = e.CommandArgument.ToString().Split(';');
int index = Convert.ToInt32(arg[3]);
TextBox itemQuantity = (TextBox)GridView1.Rows[index].Cells[6].FindControl("txtQty");
string[] row = new string[5];
row[0] = arg[0]; //Product_Name
row[1] = arg[1]; //Product_ID
row[2] = itemQuantity.Text; //OrderQTY
row[3] = arg[2]; //Price
row[4]=(Double.Parse(arg[2]) * Convert.ToInt32(itemQuantity.Text)).ToString();// calculate total price
CartDT.Rows.Add(row);//Creating row in Datatable using row[] string array
GridView2.DataSource = CartDT;
GridView2.DataBind();
}
现在当我执行它时,它给出了“输入数组长于该表中的列数”的错误 数组 row[] 中正好有 5 个元素,而且 DataTable CartDT 也有 5 列。 现在我无法准确找到我错的地方。 请帮我找出错误。
提前谢谢。
【问题讨论】:
-
哪一行报错,可能是引用了其他数组
-
刚刚运行了执行行插入的代码部分,工作得很好。我显然必须对所有 Product 值进行硬编码。
-
只是好奇,但是您是否甚至费心在谷歌上搜索“输入数组比此表中的列数长”并自己解决?请阅读FAQ's 并在您提出此类简单问题之前进行研究。
标签: c# asp.net datatable datarow arrays