我有一个返回数据的数组,如3,6,9,12,15 ..(3的乘法)
DataTable dt = new DataTable();
string GridData = ViewState["ShowItem"].ToString();
string[] FilterData = GridData.Split('^');
上面的数组返回数据,如..
FilterData [0] = "Pizza"; (Item)
FilterData [1] = "2$"; (Price)
FilterData [2] = "2"; (Quantity)
FilterData [3] = "Burger";
FilterData [4] = "5$";
FilterData [5] = "1";
FilterData [6] = "Cesa";
FilterData [7] = "7$";
FilterData [8] = "3";
now I want to enter above data as column wise in database like:
Item Price Quantity Total(Price*Quantity)
现在我想运行一个循环,添加特定字段的数据,如:
for (int nIndex = 0; nIndex < FilterData.Length; nIndex++)
{
DataRow drow = dt.NewRow();
drow["ProductItem"] = FilterData[nIndex].ToString(); (Add all Item)
drow["Cost"] = FilterData[nIndex].ToString(); (Add all Cost)
drow["Quantity"] = FilterData[nIndex].ToString(); (Add all Quantity)
double Total= Convert.ToDouble(FilterData[nIndex].ToString()) * Convert.ToInt32(FilterData[nIndex].ToString()); (Add all cost*Quantity)
drow["Total"] = Total;
dt.Rows.Add(drow);
}
所以有人可以帮助我如何运行循环,以便将数据添加到特定列,如: 商品价格数量总计(价格*数量)
Pizza 2 2 4
Burger 5 1 5
Cesa 7 3 21
答案 0 :(得分:3)
您需要每次将nIndex
增加3,通过它与nIndex
的偏移量访问每个成员:
for (int nIndex = 0; nIndex < FilterData.Length; nIndex += 3)
{
DataRow drow = dt.NewRow();
drow["ProductItem"] = FilterData[nIndex]; // Item
var cost = FilterData[nIndex + 1]; // Cost
var qty = FilterData[nIndex + 2]; // Quantity
drow["Cost"] = cost;
drow["Quantity"] = qty;
double Total =
Convert.ToDouble(cost.Remove(cost.Length - 1)) * // remove $
Convert.ToInt32(qty); // Total
drow["Total"] = Total;
dt.Rows.Add(drow);
}