繁体   English   中英

使用 C# 将 CSV 文件导入 Access 但数据无序

[英]Importing CSV file into Access using C# but data is out of order

今天有点老派,试图修复制造工厂中运行的一些软件,该软件将 CSV 文件中的数据导入用于生成 Crystal 报告的访问数据库!

原始 CSV 文件按 RANK(1、2、3 等)顺序排列,但当使用以下代码导入时,它通常无序到达 Access 数据库。

using (OleDbCommand accComm2 = new OleDbCommand(String.Format("SELECT TOP 100 PERCENT vCSV.* INTO {0} FROM [Text;FMT=Delimited;HDR=YES;IMEX=1;DATABASE={1}].[{2}] as vCSV ORDER BY vCSV.RANK", dbtable, Path.GetDirectoryName(fname), Path.GetFileName(fname)), accConn, accTran))
                        {
                            accComm2.ExecuteNonQuery();
                        }

这会导致进一步的问题,因为创建的古怪水晶报告制造摘要要求数据按等级排列。

因为水晶报表是分批分组的,所以不能在水晶报表端进行排序。

有谁知道为什么上述方法不起作用? 我们甚至尝试将其导入临时表,然后导入活动表,有效地执行了两次排序命令,但有时仍会失败!

您应该在插入之前对子查询进行排序。 插入时排序在 Access 中没有任何影响,除了您可以在插入时获得的预览。

SELECT * INTO {0} FROM (SELECT TOP 100 * [Text;FMT=Delimited;HDR=YES;IMEX=1;DATABASE={1}].[{2}]  ORDER BY RANK) as vCSV

请注意,严格来说,结果表没有索引,因此是一个堆并且没有定义的排序顺序(没有第一/第二/第 n 条记录,任何排序都同样有效)。 但实际上,这可能会奏效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM