【发布时间】:2009-10-13 10:29:46
【问题描述】:
我正在寻找使用 .net MVC 将 csv 或 excel 文件导入 SQL Server 2005 的最佳方法。
谢谢。
【问题讨论】:
标签: asp.net-mvc sql-server-2005 excel csv
我正在寻找使用 .net MVC 将 csv 或 excel 文件导入 SQL Server 2005 的最佳方法。
谢谢。
【问题讨论】:
标签: asp.net-mvc sql-server-2005 excel csv
有一个非常好的库,叫做 FileHelpers,它 a) 100% 免费,b) 完全使用 C#,它可以轻松导入任何类型的基于文本的文件 - 逗号分隔、制表符分隔、固定宽度和以此类推。
您应该可以毫无问题地使用它来将 CSV 文件加载到内存对象中并使用 ADO.NET 将这些文件存储在 SQL Server 中。
在 FileHelpers 中,您首先需要有一个描述您的数据的类,例如“客户”类(或您要导入的任何内容)。
然后,您可以使用以下代码导入文件:
FileHelperEngine<Customer> engine = new FileHelperEngine<Customer>();
Customer[] dataLoaded = engine.ReadFile(fileName);
一旦您拥有了客户数组,您就可以遍历它并保存数据(通常在交易中),例如存储过程或即席 SQL 查询:
using(TransactionScope ts = new TransactionScope())
{
foreach(Customer c in dataLoadad)
{
SaveCustomer(c);
}
ts.Complete();
}
或者您可以将客户数组转换为 DataTable 并使用 SqlBulkCopy 将其批量插入您的 SQL Server 数据库 - 有很多选择!
更新:
你的BlackListDevice 类中是否有[DelimitedRecord] 或其他这些属性?
【讨论】:
通过添加一个单独的文件上传类来解决这个问题,就像使用 FileHelper 的魅力一样。
【讨论】: