gpt4 book ai didi

asp.net-core - 使用 SqlBulkCopy 和 ASP.Net Core 导入 .CSV

转载 作者:行者123 更新时间:2023-12-03 20:27:51 25 4
gpt4 key购买 nike

嗨,我正在尝试将一些项目迁移到 ASP.Net Core,但在将 .CSV 文件上传到我的 SQL 数据库的正确方法方面存在一些问题。

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

让它发挥作用的最佳方法是什么。我上传了文件,我可以处理内容,我只需要以正确的格式获取数据即可上传到我的 SQL 数据库。

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

最佳答案

我已经使用 FastMember's 解决了它objectreader 和一个像这样的列映射:

 List<Data> lstData = new List<Data>();
//fill list of data..

using (var sqlCopy = new SqlBulkCopy(Config.get("Data:db:ConnectionString")))
{
sqlCopy.DestinationTableName = "[tblBulkCopy]";
sqlCopy.BatchSize = 500;

//map property index to column index in table. in database table the first column is the identitycolumn
sqlCopy.ColumnMappings.Add(0, 1);
sqlCopy.ColumnMappings.Add(1, 2);
sqlCopy.ColumnMappings.Add(2, 3);

var records = lstData.Select(obj => new { col1 = obj.number1, col2 = obj.number2, col3 = obj.number3 });

using (var reader = ObjectReader.Create(records, new[] { "col1", "col2", "col3" }))
{
sqlCopy.WriteToServer(reader);
}
}

关于asp.net-core - 使用 SqlBulkCopy 和 ASP.Net Core 导入 .CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40470357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com