繁体   English   中英

ASP.NET-输入字符串的格式不正确

[英]ASP.NET - Input string was not in a correct format

我在尝试获取,乘以并显示存储在Cookie中的数据时收到错误消息,指出输入字符串的格式不正确。 它说total = total + (Convert.ToInt32(a[2].ToString()) * Convert.ToInt32(a[3].ToString()));的一部分中有错误total = total + (Convert.ToInt32(a[2].ToString()) * Convert.ToInt32(a[3].ToString())); 请有人帮我。 这是我的代码:

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

如果您要转换表单字符串,建议您使用int.TryParse(...)。 可能是这样的:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM