过滤数据输入字符串的格式不正确

时间:2013-06-02 02:17:32

标签: c#

我编写了代码来对.csv文件进行排序。我现在需要的是只读取具有有序值的行并将它们写入datagridview。例如,只读取Age的值为22的行。文件看起来像:

 ID Name Surname Age Salary
 -------------------------- 
 1  John Asben   33  1000
 2  Adam Smith   22  1200
 3  Amanda J     22  2000
 4  George Villis 36  2300

我的问题在于过滤数据,例如当我单击按钮显示Employee按年龄而类型22为Age时,程序必须在datagridview中显示记录(行),其中列年龄的值为22.我尝试了一个代码但它显示错误:

  

输入字符串的格式不正确

我认为因为第一行数据类型与其他行不同。

我的代码如下所示:

private void btnAge_Click(object sender, EventArgs e)
{
        List<string[]> parsedData = ReadAndSelectdata(@"C:\sorteddata.csv", ',');

        int age;

        if (txtage.Text != "")
        {
            age = int.Parse(txtage.Text);
            DrawDataGridView(parsedData.Where(p => (p[3] == "Age") || (int.Parse(p[3]) == age)).ToList());
        }
        else
            MessageBox.Show("Please type the age for Employee");
}

1 个答案:

答案 0 :(得分:0)

在我看来,你应该创建一个名为Employee

的类
    class Employee
    {
       public int ID {get;set;}
       public string Name {get;set;}
       public string Surname {get;set;}
       public int Age {get;set;}
       public int Salary {get;set;}
     }

更改ReadAndSelectData方法以返回List<Employee> 然后你需要做的就是

if(!string.IsNullOrEmpty(txtage.Text))
{
   DrawDataGridView(parsedData.Where(p=>p.Age == int.parse(txtage.Text));
}
else
{.....}