应用程序的“控制台类型”是否适合我的解决方案? ( C# )

时间:2016-10-24 10:19:21

标签: c# sql-server visual-studio csv windows-server-2012

我刚刚开始实习作为开发学生。

我需要在C#中编写一个程序来读取CSV产品,然后解析它,映射它并将其更新或更新到SQL Server数据库中。

该程序将在Windows VPS上运行,并且必须每天执行,因为CSV也会每天更新。我必须自动化这个过程。

所以来问我的问题:

1。我可以使用控制台应用程序吗? (因为我不需要任何GUI)

2。这样的程序是否有嵌套循环插入/更新崩溃或者数据库过重,因为CSV可以包含+ 100k记录?

任何正确方向的指导都是非常苛刻的

3 个答案:

答案 0 :(得分:1)

  1. 即可。您确实可以开发控制台应用程序。使用Windows窗体或类似的东西(例如带有表单的C#应用​​程序和带代码的单个按钮。)将是一个坏主意,因为您不需要GUI并且自动化更难。

    您有哪些选择?

    • 控制台应用:易于开发。您可以使用Windows任务计划程序安排它。
    • Windows服务:开发有点困难。如果它正在运行则更容易控制。
    • WCF或Restful Web Service :如果需要在未来发展,则难以开发但更开放。更容易与其他服务器互连,因为可以从外部触发执行。
  2. ,可能没有,虽然代码错误,您可以设法在SQL Server中创建问题。

  3. 我的建议:如果您没有太多时间/技能,请访问控制台应用。如果可以,创建一个实现GET的异步RESTFUL Web服务,以查看上次/当前执行的状态,POST以触发新的执行并返回正确的HTTP响应代码。

答案 1 :(得分:0)

<强> 1。我可以使用控制台应用程序吗? (因为我不需要任何GUI) 是的,您可以控制台应用程序和任务计划每天运行此程序。 您也可以编写 Windows服务 - 在这种情况下,您的程序将在后台运行。

<强> 2。像这样的程序是否有嵌套循环插入/更新崩溃或者数据库太重,因为CSV可以包含+ 100k记录?

100K +对MS SQL没有任何用处。但确定你需要编写正确的代码。我将解析它,然后在多线程中插入db。但这取决于你需要做什么。

答案 2 :(得分:0)

从技术上讲,您可以使用任何您想要的应用程序类型,但如果我要编写此应用程序,我将选择Windows Service Application,因为您希望应用程序以自动方式重复运行。

并且为了表现,我不认为按照每个记录访问数据库这里最好的做法可能是你应该寻找Bulk Insert.