我编写了一个方法 BulkCopy,将我的 Excel 文件上传到 SQL Server 数据库表。我正在尝试对此进行单元测试,但每次都失败并显示“System.NotSupportedException:不支持指定的方法”。
如果有人可以看看,将不胜感激。
亲切的问候,
艾美特
public static void BulkCopy(string inputFilePath, string tableName)
{
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
var stream = File.Open(inputFilePath, FileMode.Open, FileAccess.Read);
using (var reader = ExcelReaderFactory.CreateReader(stream))
{
using (var bulkCopy = new SqlBulkCopy(ConnectionString))
{
bulkCopy.EnableStreaming = true;
bulkCopy.DestinationTableName = tableName;
reader.Read();
var cols = Enumerable.Range(0, reader.FieldCount).Select(i => reader.GetValue(i)).ToArray();
foreach (var col in cols)
{
var column = cols.GetValue(0).ToString();
if (column.Trim() == "Column 1")
{
bulkCopy.ColumnMappings.Add(column, "Column 1");
}
if (column.Trim() == "Column 2")
{
bulkCopy.ColumnMappings.Add(column, "Column 2");
}
if (column.Trim() == "Column 3")
{
bulkCopy.ColumnMappings.Add(column, "Column 3");
}
//continued for column mappings...
}
bulkCopy.WriteToServer(reader);
}
Console.WriteLine("Copy data to database done (DataReader).");
}
}