CSharp - 自动填充功能:使用 C# 读取XML文件和自动填充文本框

  显示原文与译文双语对照的内容

我有一个管理和会计公司的应用程序。 我将所有客户保存在一个XML文件中。 现在,如果"宋体"已经存在,我想自动填充"姓氏"和"姓名"文本框。 为此,我使用以下代码:


private void txtKNrNew_Leave(object sender, EventArgs e)
 {
 XDocument xdoc = XDocument.Load(path +"save.xml");
 int CustNos;

 if (Int32.TryParse(txtKNrNew.Text, out CustNos))
 {
 var xmlNodeExist ="Buchhaltung/Customers/CustNo";
 var CustNoExist = xdoc.XPathSelectElements(xmlNodeExist).FirstOrDefault(x => (int)x == CustNos);
 var SurnameNode ="Buchhaltung/Customers/Surname";
 var ForenameNode ="Buchhaltung/Customers/Forename";
 var surnames = xdoc.XPathSelectElements(SurnameNode).FirstOrDefault(x => (int)x == CustNos);
 var forenames = xdoc.XPathSelectElements(ForenameNode).FirstOrDefault(x => (int)x == CustNos);

 if (CustNoExist!= null)
 {
 MessageBox.Show("not null");
 }
 }
 }

如果现在在文本框中键入一些数字,则会出现以下错误:

输入字符串格式不正确。

我不知道为什么这个错误会出现,因为在VS2012中没有错误。 只有在文本框中键入内容时,出现错误。 请有人帮我?

时间: 作者:

似乎错误出现在这一行中:


var CustNos = int.Parse(txtKNrNew.Text);

你可能在数字或者小数点之间有一些空格,如下所示: 122,999将结果解析为int以失败。

你可以做的是尝试解析文本框中的用户类型。

例如;


int CustNos ;
 if (int.TryParse(txtKNrNew.Text, out CustNos ))
 {
//do what you want with CustNos 

 }
 else
 {
//Display Error Message to user

 }

作者:
...