2017-03-07 8 views
0

クッキーに格納されたデータを取得、表示、表示しようとすると、入力文字列が正しい形式でないというエラーが表示されます。 一部に間違いがありました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

すみません。私はこの言語では新しいです。私はちょうど簡単な電子商取引のウェブサイトを作成し、顧客の注文を一時的に保管するためにクッキーを使用しました。それは支払うべき顧客の初期価格を表示しようとするときに起こります。 – Joe

+0

クッキーに保存する値は?クッキーに保存するサンプル値を提供できますか? –

答えて

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); 
} 
関連する問題