when i first add an item, gridview can show the data from dtcart. when i add second item, the error "Input array is longer than the number of columns in this table." appear in ##. Did i use data table wrongly?
protected void addToCartbtn_Click(object sender, EventArgs e)
{
int quantity = Convert.ToInt32(tb_qty.Text);
double unitPrice = Convert.ToDouble(pPrice.Text);
double subTotal = quantity*unitPrice;
DataTable dtCart = new DataTable();
if (Session["Cart"] == null)
{
dtCart.Columns.Add("productID");
dtCart.Columns.Add("productName");
dtCart.Columns.Add("unitPrice");
dtCart.Columns.Add("quantity");
dtCart.Columns.Add("subTotal");
}
else
{
Session["Cart"] = dtCart;
}
DataTable dtprod = new DataTable();
dtprod = action.getproductDetails(Request.QueryString["productID"]);
bool check = false;
for (int i = 0; i < dtCart.Rows.Count; i++)
{
if (dtCart.Rows[i][0].ToString() == Request.QueryString["productID"].ToString())
{
check = true;
Response.Redirect("FrontShoppingCart.aspx");
}
else
{
dtCart.Rows.Add(new object[] {Request.QueryString["productID"],
dtprod.Rows[0]["productName"].ToString(),
dtprod.Rows[0]["productPrice"].ToString(),
quantity,
subTotal
});
}
}
if (check == false)
{
## dtCart.Rows.Add(new object[] {Request.QueryString["productID"],
dtprod.Rows[0]["productName"].ToString(),
dtprod.Rows[0]["productPrice"].ToString(),
quantity,
subTotal});
}
Session.Add("Cart", dtCart);
}