选择整个列

时间:2017-11-02 15:13:55

标签: c# sql csv datatable

这里是场景:我在dataTable中有一个.CSV绑定,我想移动DT中的整个列以匹配我的数据库列的顺序。

执行订单后,我将在DB中插入一个Query。

我想到循环遍历我的DT并选择与列具有相同索引的所有行,如下所示:

有更好/更快的方法吗?

PS:我会使用~100-5000行的CSV。

编辑:

我的数据库列是这样的:

名字,姓氏,年龄,国家

我的CSV按此订购

年龄,姓氏,国家,名字

我希望CSV的列与数据库的顺序相匹配

2 个答案:

答案 0 :(得分:0)

听起来您正尝试使用INSERT INTO [table] VALUES (...)插入。对于查询,列顺序无关紧要。另外,这可能很危险。如果将来更改数据库列会怎么样?如果删除表然后使用不同的列顺序创建该怎么办?当然,我们大多数人都会构建应用程序,假设后端结构是静态的,但事情发生了,并且声明像INSERT INTO [table] ([first name], [last name], [age], [Country]) VALUES (...)这样的列并不需要花费太多精力。另外,这种方式具有易于阅读的优点。

如果要对视图图层中的列重新排序,请在视图图层中重新排序,但我建议您按照读取的顺序保留DataTable。

答案 1 :(得分:-1)

首先使用批量复制https://johnnycode.com/2013/08/19/using-c-sharp-sqlbulkcopy-to-import-csv-data-sql-server/复制数据库中的完整表,然后在数据库中执行您想要的任何操作,这要快得多。