【发布时间】:2016-10-24 10:19:21
【问题描述】:
我刚开始作为开发学生实习。
我需要用 C# 编写一个程序,该程序将读取 CSV productfeed,然后对其进行解析、映射并将其插入或更新到 SQL Server 数据库中。
该程序将在 Windows VPS 上运行,并且必须每天执行,因为 CSV 也会每天更新。我必须自动化这个过程。
所以来回答我的问题:
1.我可以使用控制台应用程序吗? (因为我不需要任何 GUI)
2. 像这样带有用于插入/更新的嵌套循环的程序是否会崩溃或在数据库上过于繁重,因为 CSV 可以包含 +100k 记录?
非常感谢任何正确方向的指导
【问题讨论】:
-
应用程序是否需要一直运行才能处理提要?如果是这样,控制台应用程序可能不是要走的路,您应该改为调查 Windows 服务应用程序。您还应该查看数据库事务的批量插入。
-
不必每天只运行一次即可添加更新后的 CSV 提要中可能存在的新产品或更新价格或库存可能发生变化的任何现有产品。批量插入是否也可以作为现有记录的批量更新?
-
否,但请在此处查看有关如何实现大量更新的建议。 stackoverflow.com/questions/27933584/… 关于你的应用程序,即使它每天只运行一次,如果它是一个控制台应用程序,那么有人必须每天启动它才能运行它。如果它是 Windows 服务,您可以让它在后台运行,并设置您希望它访问源的时间。
-
我还应该说,如果你正在做一个 Windows 服务,你可以安排它在没有人使用系统的凌晨运行。在这种情况下,数据库插入/更新性能可能不会那么重要。
标签: c# sql-server visual-studio csv windows-server-2012