0

我创建了一个应用程序,其中我为产品代码键入的内容基于数据库。

但是我有一个问题,当数据库中的产品代码与我输入的不匹配时。它给了我错误:

Input string was not in a correct format

它指出:

price = Convert.ToDecimal(this.numericTextBox2.Text);

假设我在数据库中有这样的数据:

+-------------+-------------+------------+
| 产品编号 | 说明 | 小计 |
+-------------+-------------+------------+
| SM0001 | 测试 | 50000 |
+-------------+-------------+------------+

当我在程序中尝试并在Product Code中键入“SM0002”时,显示了错误。

注意:在程序中键入“产品代码”时,会显示程序中属于该“产品代码”的所有信息

这是必要的代码:

private void textBox_TextChanged(object sender, EventArgs e)
{
    UpdatePrice(sender, e);
}

private void UpdatePrice(object sender, EventArgs e)
{
    decimal quantity = 0;
    decimal price = 0;
    int total = 0;

    if (numericTextBox1.TextLength == 6)
    {
        this.numericUpDown1.Enabled = true;

        quantity = Convert.ToInt32(this.numericUpDown1.Value);
        price = Convert.ToDecimal(this.numericTextBox2.Text);
        total = Convert.ToInt32(quantity * price);

        if (numericUpDown1.Value > 0)
        {
            this.numericTextBox3.Text = total.ToString();
        }
    }
}

有谁知道如何解决这个问题?

NumericTextBox1 是我放入Product Code的文本框。

在我上面的代码中,程序显示6 个字母price时基于数据库的其余部分。Product Code但是,当程序找不到price基于 的内容时Product Code,它给出了错误。当Product Code命中 6 个字母时,程序会检查product code输入的 是否与数据库匹配,如果匹配,程序会根据输入的 显示所有信息product code

编辑

程序仍然认识到,price只要输入的product code(numericTextBox1.Text)等于 6,就必须显示。当我输入时,SM0001它没有显示错误,因为里面priceSM0001. 但是当我尝试SM0002在数据库中输入没有数据但numericTextBox1.Text等于 6 时,程序被迫显示一个priceprice属于输入的product code数据(SM0002)..

我想要的是当numericTextBox1.Text等于6个字母时,它会查看数据库中的信息,如果product code与数据库相同(匹配),程序将显示属于该代码的其余信息<--这已经完成并解决了..

当我SM0002输入数据库中没有数据时,它给出了错误。

当 numericTextBox1 达到 6 个字母时,numericTextBox2 就会出来。当 numericTextBox1 与数据库匹配时,它将显示所有信息。现在,我的问题是 numericTextBox1 与数据库不匹配时,它给出了错误

4

1 回答 1

0

它必须在行中

price = Convert.ToDecimal(this.numericTextBox2.Text);

检查您输入的内容numericTextBox2

编辑

您可以尝试使用此代码来检测您是否有有效号码:

if (Decimal.TryParse(this.numericTextBox2.Text, out price))
{
     total = Convert.ToInt32(quantity * price);
}
于 2013-10-06T04:02:36.327 回答