0

.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

私の問題は、データのフィルタリングにあります.エラー:

入力文字列は、正しい形式ではありませんでした

最初の行のデータ型が他の行と違うからだと思います。

私のコードは次のようになります。

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");
}
4

1 に答える 1

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 メソッドを変更して a を返すようList<Employee> にします。

if(!string.IsNullOrEmpty(txtage.Text))
{
   DrawDataGridView(parsedData.Where(p=>p.Age == int.parse(txtage.Text));
}
else
{.....}
于 2013-06-02T02:41:11.363 に答える