Im пытается конвертировать значения InnerHtml в десятичное значение. Пользователь будет вводить XPath в TextBox2Преобразование значений InnerHtml в десятичный
List<Decimal> productPriceList = new List<Decimal>();
var priceTags = document.DocumentNode.SelectNodes(textBox2.Text);
Тогда я делаю цикл по каждому элементу, чтобы перебирать, хотя найдены цены и добавить их в список под названием productPriceList
foreach (var prices in priceTags)
{
label9.Visible = true;
label9.Text += prices.InnerHtml + "\n";
productPriceList.Add(prices.InnerHtml);
label2.Visible = false;
label3.Visible = false;
}
Затем я добавляю значения в базе данных :
using (var con = new SqlConnection(connectionString))
{
con.Open();
using (var cmd = new SqlCommand(@"INSERT INTO OnlineProductsTemp$(CompetitorID, ProductCode, ProductName, DateCaptured)
VALUES(@CompetitorID, @ProductCode, @ProductName, @DateCaptured)", con))
{
cmd.Parameters.Add("@CompetitorID", SqlDbType.Int);
cmd.Parameters.Add("@ProductCode", SqlDbType.VarChar);
cmd.Parameters.Add("@ProductName", SqlDbType.VarChar);
cmd.Parameters.Add("@Price", SqlDbType.Decimal);
cmd.Parameters.Add("@DateCaptured", SqlDbType.DateTime);
for (int i = 0; i < competitorList.Count; i++)
{
cmd.Parameters["@CompetitorID"].Value = competitorList[i];
cmd.Parameters["@ProductCode"].Value = productCodeList[i];
cmd.Parameters["@ProductName"].Value = productNameList[i];
cmd.Parameters["@Price"].Value = productPriceList[i];
cmd.Parameters["@DateCaptured"].Value = dateCapturedList[i];
int rowsAffected = cmd.ExecuteNonQuery();
}
Все работает правильно, но я не могу найти способ правильно преобразовать значения InnerHtml в десятичный тип. Есть ли способ достичь этого?
Вы пытались использовать [Decimal.Parse] (https://msdn.microsoft.com/en-us/library/system.decimal.parse (v = vs.110) .aspx)? –
Я получаю сообщение об ошибке ** Указатель был за пределами допустимого диапазона. Должен быть неотрицательным и меньше размера коллекции **, когда я добавил 'productPriceList.Add (Decimal.Parse (prices.InnerHtml));' в цикл foreach. Эта ошибка возникает при добавлении данных в базу данных, а в списке есть 0 элементов внутри них. – TeaAnyOne
. Тогда ясно, что вы должны проверить, есть ли у вас что-то в этом списке, особенно когда вы перебираете другой массив/список. –