我想制作C#代码以从数据库表中提取数据,然后将其写入CSV文件。对于某些列,我希望将值括在双引号中。我想知道是否更好地让SQL服务器执行追加/前置或使C#代码这样做?这会使我的SQL服务器查询在所有情况下都变慢吗?
答案 0 :(得分:2)
“用双引号括起来”是CSV的工件。
引号不是数据的一部分,因此不从SQL查询中返回。
处理CSV处理 - 包括根据需要添加引号 - 在C#中。我建议使用现有的库 1 ,当数据写入为CSV时,它将自动处理所需的引用和其他注意事项。
在SQL中执行此操作的其他一些原因:
防止SQL因不必要的操作而受到污染。
保持查询通用;它也可以同样用于HTML或Excel输出的源数据。
客户端(C#)可以根据值适当地引用字段。如果需要为CSV输出引用以前未引用的字段,这会使代码“面向未来”。
对于包含引号的数据,天真地添加引号会失败。
1 如果不能使用合适的库,对于任何愚蠢的限制,可以使用各种single-file implementations浮动作为基础。 YMMV。
答案 1 :(得分:0)
SQL不擅长编程工作。它总会在某种程度上减慢速度。除非它是一个快速而肮脏的“一次性”功能,否则我会将它用于数据访问,这是擅长的。如果我不需要,我甚至不会做“订购”条款。