Asp.net core 使用带有ASP.Net核心的SqlBulkCopy导入.CSV

Asp.net core 使用带有ASP.Net核心的SqlBulkCopy导入.CSV,asp.net-core,sqlbulkcopy,Asp.net Core,Sqlbulkcopy,您好,我正在尝试将一些项目迁移到ASP.Net Core,但在将.CSV文件上载到SQL数据库的正确方法方面遇到了一些问题 在过去,我会上传.CSV文件循环并将该信息存储在DataTable中,然后简单地执行SqlBulkCopy.WriteToServer,但我发现目前.Net Core中没有DataTable对象。SQLBulkCopy接受DbDataReader而不是DataTable 什么是最好的方法让这个工作。我已经上传了文件,我可以处理我只需要获得正确格式的数据就可以上传到我的SQL

您好,我正在尝试将一些项目迁移到ASP.Net Core,但在将.CSV文件上载到SQL数据库的正确方法方面遇到了一些问题

在过去,我会上传.CSV文件循环并将该信息存储在DataTable中,然后简单地执行SqlBulkCopy.WriteToServer,但我发现目前.Net Core中没有DataTable对象。SQLBulkCopy接受DbDataReader而不是DataTable

什么是最好的方法让这个工作。我已经上传了文件,我可以处理我只需要获得正确格式的数据就可以上传到我的SQL数据库中的内容

对任何想法都持开放态度。谢谢。

我已经使用objectreader和列映射解决了这个问题,如下所示:

List lstData=新列表();
//填写数据清单。。
使用(var sqlCopy=newsqlbulkcopy(Config.get(“Data:db:ConnectionString”))
{
sqlCopy.DestinationTableName=“[tblBulkCopy]”;
sqlCopy.BatchSize=500;
//将属性索引映射到表中的列索引。在数据库表中,第一列是identitycolumn
添加(0,1);
添加(1,2);
添加(2,3);
var records=lstData.Select(obj=>new{col1=obj.number1,col2=obj.number2,col3=obj.number3});
使用(var reader=ObjectReader.Create(记录,新[]{“col1”、“col2”、“col3”}))
{
sqlCopy.WriteToServer(读卡器);
}
}

//将属性索引映射到表中的列索引。在数据库表中,第一列是identitycolumn
,它为我节省了太多的麻烦。感谢您抽出时间将您的findnigsTry发布到本库: