2017-03-07 55 views
0

我收到一個錯誤,說我輸入字符串的格式不正確,當我嘗試獲取,乘數並顯示存儲在Cookie中的數據時。 它說total = total + (Convert.ToInt32(a[2].ToString()) * Convert.ToInt32(a[3].ToString())); 有一個部分有錯誤請有人幫助我。這裏是我的代碼:ASP.NET - 輸入字符串格式不正確

protected void Page_Init(object sender, EventArgs e) 
{ 
    DataTable dt = new DataTable(); 
    dt.Columns.AddRange(new DataColumn[7] { new DataColumn("product_name"), new DataColumn("product_desc"), new DataColumn("product_price"), new DataColumn("product_qty"), new DataColumn("product_images"), new DataColumn("id"), new DataColumn("product_id") }); 

    if (Request.Cookies["aa"] != null) 
    { 
     s = Convert.ToString(Request.Cookies["aa"].Value); 

     string[] strArr = s.Split('|'); 

     for (int i = 0; i < strArr.Length; i++) 
     { 
      t = Convert.ToString(strArr[i].ToString()); 
      string[] strArr1 = t.Split(','); 

      for (int j = 0; j < strArr1.Length; j++) 
      { 
       a[j] = strArr1[j].ToString(); 
      }`enter code here` 
      dt.Rows.Add(a[0].ToString(), a[1].ToString(), a[2].ToString(), a[3].ToString(), a[4].ToString(), i.ToString(), a[5].ToString()); 



      total = total + (Convert.ToInt32(a[2].ToString()) * Convert.ToInt32(a[3].ToString())); 
      totalcount = totalcount + 1; 

      cart_items.Text = totalcount.ToString(); 
      cart_price.Text = total.ToString(); 
     } 
    } 
+3

要麼[2]不是一個整數或[3]。使用調試器來檢查。您的問題沒有包含足夠的信息來重現您的問題 –

+0

對不起。我是這個語言的新手。我剛創建了一個簡單的電子商務網站,我用cookies來臨時存儲客戶的訂單,當我嘗試顯示客戶的初始價格應該支付時,會發生這種情況。 – Joe

+0

你在cookie中存儲什麼值?你能提供你在cookie中存儲的樣本值嗎? –

回答

0

我推薦你使用int.TryParse(...)如果你想轉換表單字符串。 它可能是這樣的:

int var2, var3 = 0; 
if(int.TryParse(a[2].ToString(), out var2) 
&& int.TryParse(a[3].ToString(), out var3)) 
{ 
    total += (var2 * var3); 
}