gpt4 book ai didi

c# - 输入字符串的格式不正确 C# 错误

转载 作者:太空宇宙 更新时间:2023-11-03 19:13:01 25 4
gpt4 key购买 nike

我创建了一个应用程序,其中的信息基于我在数据库中的信息。

当用户键入数据库中存在该代码的代码时,信息将出现并填充剩余的文本框。

这是我的数据库:

enter image description here

这是我输入“SM0001”时程序的屏幕截图。

enter image description here

请注意,在“产品代码”文本框、“数量”文本框、“描述”文本框、“小计”文本框中键入“SM0001”之前,请注意框”和“总计”文本框是空的。

当我在“产品代码”文本框中键入“SM0001”时,它会显示属于我输入的该代码的所有数据。

注意:数据库中的价格是程序中的小计

这是我的问题:当我输入“SM0002”时,在“产品代码”文本框中(我输入的代码不在数据库中,数据库中的产品代码只有“SM0001"), 程序停止并给我错误“输入的字符串格式不正确”,它指向这里:

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

这是必要的代码:

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

else if (numericTextBox1.TextLength != 6)
{
this.numericUpDown1.Enabled = false;

this.textBox5.Text = "";
this.numericUpDown1.Value = 0;
this.numericTextBox2.Text = "";
this.numericTextBox3.Text = "";
}

else
{
quantity = 0;
price = 0;
total = 0;

MessageBox.Show("There is no data based on your selection", "Error");
}

谁能帮帮我?

“产品代码文本框为NumericTextBox1”,“小计文本框为NumericTextBox2”,“总计文本框为NumericTextBox3”

最佳答案

如果你的异常在这里

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

并且您的产品代码 SM0002 不存在,那么这意味着您正在解析一个不存在的值。所以在那种情况下,你需要一些处理机制。

使用 TryParse ,您可以处理任何不可解析的值并返回所需的值。你可以使用这个方法:

private double ParseDouble(string value)
{
double d=0;
if(!double.TryParse(value , out d))
{
return 0;
}
return d;
}

因此您的代码应该看起来像需要转换的地方。

var price = ParseDouble(numericTextBox1.Text);

关于c# - 输入字符串的格式不正确 C# 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19206250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com