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

时间:2014-01-16 12:48:54

标签: c# xml

我有一个管理和会计公司的申请。我将所有客户保存在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中没有错误。只有当我在文本框中键入内容时才会出现错误。有人能帮帮我吗?

1 个答案:

答案 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

    }