System.formatexception: 'входная строка была не в правильном формате.' ошибка
вот мой код позади:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Data.SqlClient; namespace Project_IT191P { public partial class view_cart : System.Web.UI.Page { string s; string t; string[] a = new string[8]; int tot = 0; protected void Page_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.AddRange(new DataColumn[8] { new DataColumn("ProductName"), new DataColumn("Description"), new DataColumn("Price"), new DataColumn("Stocks"), new DataColumn("Category"), new DataColumn("ImageURL"), new DataColumn("ProductID"), new DataColumn("id") }); if (Request.Cookies["cookie"] != null) { s = Convert.ToString(Request.Cookies["cookie"].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(); } dt.Rows.Add(a[0].ToString(), a[1].ToString(), a[2].ToString(), a[3].ToString(), a[4].ToString(), a[5].ToString(), i.ToString(), a[6].ToString()); tot = tot + (Convert.ToInt32(a[2].ToString()) * Convert.ToInt32(a[3].ToString())); } } d1.DataSource = dt; d1.DataBind(); l1.Text = tot.ToString(); } } }
Что я уже пробовал:
в нем говорится, что
tot = tot + (Convert.ToInt32(a[2].ToString()) * Convert.ToInt32(a[3].ToString()));входная строка была не в правильном формате
George Swan
Похоже, что[2] или[3] - это пустая строка. Кроме того, вам не нужно вызывать ToString() для строк
F-ES Sitecore
Вы пытаетесь преобразовать test (a[2] или a[3]) в int, но текст не может быть преобразован в int. Мы не знаем, что это за текст, поэтому не можем сказать, почему, для этого вам нужно будет использовать отладчик. Мы не можем сказать вам, как справиться с тем, что происходит, когда конверсия невозможна, поскольку мы не знаем ваших бизнес-правил.
Если "a" должен иметь возможность удерживать только int, то сделайте его массивом int вместо строки и сделайте версию int, когда массив будет заполнен.