1

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);

}

ループを実行して、次のような特定の列にデータを追加する方法を教えてください: Item Price Quantity Total(Price*Quantity)

Pizza    2       2             4
Burger   5       1             5
Cesa     7       3             21
4

1 に答える 1

3

毎回 3 ずつインクリメントする必要がありnIndex、各メンバーにオフセットからアクセスします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);
}
于 2013-08-20T05:45:43.590 に答える