Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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#_Asp.net_Validation - Fatal编程技术网

输入字符串的格式不正确。C#

输入字符串的格式不正确。C#,c#,asp.net,validation,C#,Asp.net,Validation,当预算显示值小于“提交”按钮将隐藏的成本显示金额时,我正在进行验证。但我得到一个错误“输入字符串的格式不正确。” 下面是我的代码 我用以下方法解决了这个问题: if (Decimal.Parse(txtBudget.Text) >= Decimal.Parse(txtCost.Text)) { btnSubmit.Visible = true; } else { btnSubmit.Visible = false; } 然后声明一个var十进制类似于: Decimal

当预算显示值小于“提交”按钮将隐藏的成本显示金额时,我正在进行验证。但我得到一个错误“输入字符串的格式不正确。”

下面是我的代码



我用以下方法解决了这个问题:

if (Decimal.Parse(txtBudget.Text) >= Decimal.Parse(txtCost.Text))
{
    btnSubmit.Visible = true;
}
else
{
    btnSubmit.Visible = false;
}
然后声明一个var十进制

类似于:

Decimal budget;
Decimal cost;

if (!Decimal.TryParse(txtBudget.Text, out budget)) {
  btnSubmit.Visible = false; 
  //TODO: probably you have to show message that txtBudget has incorrect value
}
else if (!Decimal.TryParse(txtCost.Text, out cost)) {
  btnSubmit.Visible = false; 
  //TODO: probably you have to show message that txtCost has incorrect value
}
else {
  //TODO: you may find useful to check if cost < 0 or/and budget < 0 etc.
  btnSubmit.Visible = budget >= cost;  
}
十进制预算;
十进制成本;
如果(!Decimal.TryParse(txtbudent.Text,out-budget)){
btnSubmit.Visible=false;
//TODO:可能您必须向消息显示TXTBudent的值不正确
}
否则如果(!Decimal.TryParse(txtCost.Text,out cost)){
btnSubmit.Visible=false;
//TODO:可能您必须向消息显示txtCost的值不正确
}
否则{
//TODO:您可能会发现检查成本是否<0或/和预算是否<0等很有用。
btnSubmit.Visible=预算>=成本;
}
您的问题将出现在
DateTime
转换中,因为如果
blank
Null
值,则它将给出上述错误,因此 按照下面提供的代码示例执行所有代码 已使用
datetime


在哪一行,它的给定错误?这个
txtbudent.Text
有哪个值?还有
txtCost.Text
,卢克!最可能的问题是这里的
DateTime datestart=DateTime.Parse(dr[“datestart”].ToString())。您的日期是否存储为字符串?如果是,为什么?它们应存储为日期值。空日期是作为空字符串返回还是为空?如果问题不在这里,则可能是在某个日期格式字符串中。你没有提供足够的信息。您应该能够告诉哪一行受到行号的影响,或者设置断点并调试、观察值。如果用户在
txtbrudge
字段中输入“bla-bla-bla”怎么办?同意Dmitry。。。您需要验证这些条目。。。但同时…btnSubmit.Visible=Decimal.Parse(txtbudent.Text)>=Decimal.Parse(txtCost.Text)
Decimal budget;
Decimal cost;

if (!Decimal.TryParse(txtBudget.Text, out budget)) {
  btnSubmit.Visible = false; 
  //TODO: probably you have to show message that txtBudget has incorrect value
}
else if (!Decimal.TryParse(txtCost.Text, out cost)) {
  btnSubmit.Visible = false; 
  //TODO: probably you have to show message that txtCost has incorrect value
}
else {
  //TODO: you may find useful to check if cost < 0 or/and budget < 0 etc.
  btnSubmit.Visible = budget >= cost;  
}
if(dr["DateStarted"].ToString() != "")
{
   txtDateStarted.Text = Convert.ToDateTime(dr["DateStarted"]).ToString("MMMM dd, yyyy");
}