2015-02-06 114 views
0
if (!char.TryParse(txtCustomerName.Text, out charCustomerName)) //try to read in Layers from TextBox 
{ 
    MessageBox.Show("Customer Name must be entered.", "Invalid Customer Name"); 
    return; 
} 

if (!Decimal.TryParse(txtAmountOwed.Text, out decAmountOwed)) //try to read in Layers from TextBox 
{ 
    MessageBox.Show("Amount Owed must be entered without dollar signs or commas.", "Invalid Amount Owed"); 
    return; 
} 

if (!int.TryParse(txtDaysOverdue.Text, out intDaysOverdue)) //try to read in Layers from TextBox 
{ 
    MessageBox.Show("Days Overdue must be entered as a whole number.", "Invalid Days Overdue"); 
    return; 
} 

当我运行该程序时,它告诉我,即使我输入了客户名称,也必须输入客户名称。我该如何改变它?使用Try/Parse验证用户输入?

+2

只是好奇,为什么你想使用'char.TryParse'?这将试图将字符串(文本)解析为一个“char”类型,它是一个单独的字符。 – ryanyuyu 2015-02-06 14:54:49

+0

您正试图从一串字符中解析单个字符。难道你不需要'!string.IsNullOrEmpty(txtCustomerName.Text)'? – Andrei 2015-02-06 14:55:19

+0

Andrei,IsNullOrWhiteSpace更好 – Bauss 2015-02-06 14:58:30

回答

2

更换

if (!char.TryParse(txtCustomerName.Text, out charCustomerName)) 

if (String.IsNullOrEmpty(txtCustomerName.Text)) 

字符代表ONY一个字符

+0

使用IsNullOrWhiteSpace – Bauss 2015-02-06 14:57:07

+0

@ L33TS - 可能在他的情况下空格是一个有效的用户名 - 他没有在他的问题中定义它 – fubo 2015-02-06 15:00:02

+0

为什么空字符串无效呢?他从未指定空字符串也是无效的,但通常空白字符串或空字符串永远不会对名称有效。 – Bauss 2015-02-06 15:01:56