Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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# 如果textbox的double值为null,我必须得到一条消息_C# - Fatal编程技术网

C# 如果textbox的double值为null,我必须得到一条消息

C# 如果textbox的double值为null,我必须得到一条消息,c#,C#,我必须得到一条消息,如果一个文本框有空值的双值,我尝试了下面的代码,但在第二个条件得到一个错误,请帮助 acno = Txtacc.Text; recoverymoney = double.Parse(Txtamount.Text); if (string.IsNullOrEmpty(this.Txtacc.Text)) { MessageBox.Show("You have not entered account number, Please Enter it...!", "Erro

我必须得到一条消息,如果一个文本框有空值的双值,我尝试了下面的代码,但在第二个条件得到一个错误,请帮助

acno = Txtacc.Text;
recoverymoney = double.Parse(Txtamount.Text);

if (string.IsNullOrEmpty(this.Txtacc.Text))
{
    MessageBox.Show("You have not entered account number, Please Enter it...!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else if (string.IsNullOrEmpty(this.Txtamount.Text))
{
    MessageBox.Show("You have not entered amount, Please Enter it..!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
您应该使用double.TryParse执行此操作,并且应该在检查后读取值:

if (string.IsNullOrEmpty(this.Txtacc.Text))
{
    MessageBox.Show("You have not entered account number, Please Enter it...!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else if (string.IsNullOrEmpty(this.Txtamount.Text))
{
    MessageBox.Show("You have not entered amount, Please Enter it..!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
eise if(!double.TryParse(this.Txtamount.Text, out recoverymoney ))
{
    MessageBox.Show("You have entered an invalid amount, Please Enter a number..!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
acno = Txtacc.Text

并且更喜欢使用十进制表示货币、金额等,而不是双精度。

什么错误?…什么是错误条件?实际问题是什么?请阅读并改用double.TryParse。您将在此处得到一个错误:recoverymoney=double.ParseTxtamount.Text;如果无法将您的值解析为double.get错误:无法在此作用域中声明名为“recoverymoney”的本地或参数,因为该名称在封闭的本地作用域中用于定义本地或参数parameter@RoshanAbrew然后删除var关键字。@RoshanAbrew在哪里?double.TryParse不会抛出这样的错误。@您必须仍然拥有TryParse中的double.Parse行不会抛出这样的错误exception@Jamiec:获取错误后:输入字符串的格式不正确format@CetinBasoz:请参阅erro:无法在此范围中声明名为“recoverymoney”的本地或参数,因为该名称用于封闭本地作用域来定义本地或parameter@RoshanAbrew,这不是很明显吗?不要在封闭范围内使用该名称或使用其他名称。我正在为您编辑。@RoshanAbrew,顺便说一句,在您说出帐号之前我没有注意到,也许您不想将帐号解析为双倍,但它将是金额。同样有趣的是,您允许最终用户在教科书中输入一个帐号,并且只检查它是否为null或空。在一个良好的界面中,您应该检查数据库中是否存在帐号。@CetinBasoz:帐号正常,但不起作用amount@RoshanAbrew,我不知道如果你不控制它怎么行。无论如何,我为你编辑了控制帐号。
if (string.IsNullOrEmpty(this.Txtacc.Text)) {
  MessageBox.Show("You have not entered account number, Please Enter it...!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
} else if (!myDbContect.Accounts.Any(a => a.AccountNumber == this.Txtacc.Text)) {
  MessageBox.Show("You have not entered a valid account number, Please Enter it...!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
} else if (!double.TryParse(Txtamount.Text, out double myrecoverymoney)) {
  MessageBox.Show("The amount value you entered is not parseable to a double.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
// do something with account and myrecoverymoney