基于C#列将DataTable拆分为多个DataTable

时间:2015-08-01 11:30:42

标签: c# mysql asp.net-mvc-4 datatable

我已将CSV文件上传到dataTable,现在想要填充现有数据库,但CSV文件中的值包含需要填充到数据库中多个表的列。我的理论是将dataTable拆分为多个表,然后单独填充数据库表。首先,这是最好的方法吗?其次,如何根据列名拆分dataTable?

例如,我上传了一个包含以下标题的CSV文件:

Student_No,Surname,FirstName,Module_Code,Module_Name,Staff_No,Surname,Firstname。

然后我想将数据表拆分为:

DataTable 1

Student_No,Surname,FirstName

DataTable 2

Module_Code,Module_Name

DataTable 3

Staff_No,Surname,Firstname

非常感谢所有帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

更新!

通过复制DataTables并删除我不需要填充数据库的列,我通过创建多个dataTable来管理一个按列名拆分dataTables的工作。

private static DataTable SplitDataTableModule(DataTable d1)
    {

        DataTable dataTable1;
        dataTable1 = d1.Copy();
        dataTable1.Columns.RemoveAt(0); // remove student_no
        dataTable1.Columns.RemoveAt(1); // remove student surname
        dataTable1.Columns.RemoveAt(2); // remove student firstname
        dataTable1.Columns.RemoveAt(5); // remove staff_no
        dataTable1.Columns.RemoveAt(6); // remove staff surname
        dataTable1.Columns.RemoveAt(7); // remove staff firstname

        return d1;
    }