.net - 在我们存储在数据库中之前,我们可以使用 SSIS 来解析来自应用程序的数据吗?

标签 .net asp.net sql-server-2008 ssis

在这里探索某事的可行性...我们在 mvc3 网络应用程序中有一个 UI 页面,管理员将使用它来上传“csv”文件。是否有可能有一个将由应用程序调用的 SSIS 包。如果所有这些数据都有效,它将验证/转换所有这些数据并存储到数据库中,或者如果存在无效数据,则将错误详细信息返回给应用程序?

只是尝试利用 SSIS 的功能来解析文件和转换数据。如果这不可能,是否有更好的方法?

请提供您的想法..非常感谢!

更新:是的,需要即时执行 ssis.. 并在 UI 页面上返回一条消息..根据 SSIS 的消息告诉“上传者”他的上传是否失败会回馈给应用程序。

最佳答案

您可以使用 SSIS 来解析文本文件。您也可以使用大锤敲打精修钉。更好的选择是 FileHelpers让您远离自己解析文本文件的文本解析泥潭。


考虑到编辑和争论,我会详细说明一下。主要是我发现直接从 MVC Controller 调用 SSIS 存在一些大问题:

a) 大量的外部依赖性。您的开发、CI 和暂存环境将需要启用 SSIS 的完整 SQL 服务器,并且可能需要大量其他配置,具体取决于实现细节。

b) 速度 -- SSIS 是一个很大的工作引擎,在它开始工作之前需要一段时间来启动。

c) 消息——如果操作的目的是让用户知道哪里出了问题,那么 SSIS 就是错误的工具。除非您想编写一个工具将 SSIS 导入错误翻译成可读的英文。那么你可能应该停止你正在做的任何事情并出售那个工具而不是解决这个问题。

另一方面,大多数基于 .NET 的文件解析工具和 C# 为您提供了大量的错误处理功能,使您能够更好地快速向用户提供易于理解的错误消息。

最后,如果您在这里查看大文件,您确实需要考虑某种队列和消息传递系统。在这种情况下,SSIS 可能更有意义,但我仍然认为错误消息几乎没有用。

关于.net - 在我们存储在数据库中之前,我们可以使用 SSIS 来解析来自应用程序的数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5478332/

相关文章:

c# - .Net 并行、任务 API 与常规线程

asp.net - Gridview 页脚不可见

sql-server - SQL Server 2008 脚本 - 如何从系统获取当前日期并将其存储到日期列中

c# - 指定的强制类型转换无效 – SQL float to C# double

c# - Infragisitcs ultrawingrid 列选择器和列过滤器

c# - 身份 - 自定义用户验证器

javascript - 当用户刷新整个页面时防止 bootstrap 3 模式关闭

sql - 检索紧挨着最后一个日期的 SQL Server

SQL 给出错误的结果

c# - C# .net 中的 win32 dll