我有一个管理和会计公司的申请。我将所有客户保存在XML文件中。现在,如果“CustNo”已经存在,我想自动填充“Surname”和“Forename”文本框。为此我使用此代码:
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中没有错误。只有当我在文本框中键入内容时才会出现错误。有人能帮帮我吗?
答案 0 :(得分:1)
似乎错误出现在这一行:
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
}