Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 执行错误&引用;输入字符串的格式不正确";_C# - Fatal编程技术网

C# 执行错误&引用;输入字符串的格式不正确";

C# 执行错误&引用;输入字符串的格式不正确";,c#,C#,我正在用visual studio 2010制作一个C#软件。执行程序前一切正常,但当我单击Finalize按钮时,它会显示指定的错误: 输入字符串的格式不正确 我确信错误在以下行中: private void btnFinalize_Click(object sender, EventArgs e) { if (dgvProducts.RowCount == 0) { DataAccess.InformUser("Please add some product

我正在用visual studio 2010制作一个C#软件。执行程序前一切正常,但当我单击Finalize按钮时,它会显示指定的错误:

输入字符串的格式不正确

我确信错误在以下行中:

private void btnFinalize_Click(object sender, EventArgs e)
{
    if (dgvProducts.RowCount == 0)
    {
        DataAccess.InformUser("Please add some product to the Sale....");
        return;
    }

    int intTotalSaleAmount = int.Parse(lblTotalSaleAmount.Text, System.Globalization.NumberStyles.AllowThousands);

    string saleId;
    saleId = Sales.Add(txtCustomerId.Text, dtpSaleDate.Value.ToString("mm/dd/yyyy"), txtDescription.Text, intTotalSaleAmount.ToString());

    // now add all the sale details....


    foreach (DataGridViewRow dr in dgvProducts.Rows)
    {
        string productId = Products.SelectByProductName("ProductId", dr.Cells[0].Value.ToString())[0].ToString();
        string quantity = dr.Cells[1].Value.ToString();
        string unitPrice = dr.Cells[2].Value.ToString();

        Sales.AddDetails(saleId, productId, quantity, unitPrice);
    }

    DataAccess.InformUser("The sale has been finalized....");
    dgvProducts.Rows.Clear();
    cmbProducts_SelectedIndexChanged(sender, e);
    lblTotalSaleAmount.Text = "0";
}

我不知道如何修复它。

似乎您的文本格式不总是正确的,请使用:

int intTotalSaleAmount = int.Parse(lblTotalSaleAmount.Text, System.Globalization.NumberStyles.AllowThousands);

lblTotalSaleAmount.Text
的值到底是多少?您使用的是什么
Culture
?虽然这是异常的解决方案,但不是真正问题的解决方案。旁注-您不需要初始化
out
变量。
int intTotalSaleAmount = 0;

if (int.TryParse(lblTotalSaleAmount.Text, out intTotalSaleAmount))
{
}
else
{
    // handle error
}