我们如何通过Web上传CSV文件(ASP.NET MVC C#)并将CSV表中的列映射到数据库中的表
示例:
CSV File:
Username,Address,Roles,Date
如何将“用户名”列中的所有值添加到用户表,名称列?
“地址”列中的值AddrDet表,地址列?
“角色”列中的值到RolesDet表,角色列?
并选择要添加到数据库的CSV列? (因此,不会使用CSV中的所有列)
使用ASP.NET MVC C#
因为我所知道的是CSV上传后,它将专门为CSV创建DataTable,并且将上传CSV中的所有列
谢谢
我正在使用MVC和EF DB FIRST
答案 0 :(得分:0)
此问题被标记为Upload CSV file to SQL server
的副本我觉得(并且没有想到)这个问题与主题相关或完全相同,所以我回答这个问题。我有自己的标记问题太宽泛,因为有太多要解释。
此外,我将添加一些问题的链接,但是他们不是为了填写答案,只是为了让OP知道要为自己寻找什么问题/主题。
简短说明:
通常当您想要将数据(CSV文件)导入数据库时,您已经获得了结构和数据。数据模式(和数据库)。存在TableA
和TableB
,其中存在一些列。如果您想基于CSV文件动态创建新的列/更新数据库模式,这是一项不安的工作(通常不会发生)。
C#/ ASP / .NET应用程序正在以一种方式为您提供输入(来自用户&点击,数据加载,任务调度程序通过一些时间检查点),并且APP可以完成工作。
典型的工作如下:"我们以这种格式获取数据,APP必须将它们转换为内部表示(类),然后将它们插入服务器" 。所以你必须编写一个ASP页面,允许用户粘贴/加载文件。例如:File Upload ASP.NET MVC 3.0
加载文件后,您需要将CSV格式(存储数据的格式)转换为内部表示。这意味着创建您自己的类,具有一些属性并将CSV转换(转换)为类。例如:Importing CSV data into C# classes
由于您在类(对象 - 类的实例)中拥有此数据,因此您可以使用它们并执行一些内部工作。这次我们正在寻找针对SQL数据库的CRUD(创建/读取/更新/删除)操作。首先您需要连接到SQL服务器,选择数据库然后运行查询。例如:https://www.codeproject.com/Articles/837599/Using-Csharp-to-connect-to-and-query-from-a-SQL-da
许多开发人员懒得自己编写查询,他们喜欢更多面向对象的访问这类问题。他们正在使用ORM - 对象关系映射,它允许用户在Database
和Application
中拥有相同的类/对象模式。所有的一个例子是实体框架(EF)。例如:http://www.entityframeworktutorial.net/
正如您所看到的,这个主题并不那么简单,需要了解编程的几个部分。