我正在开发一个 ASP.NET MVC4 项目,我正在尝试使用 SQL Bulk Copy 将数据从 xlsx 文件(Excel 2010 文件)导出到我的数据库。我的 Excel 文件仅包含 2 列:第一列包含数字(从 1 到 25),第二列包含字符(连续的“a、b、c”系列)
这是我尝试导出数据的方法,但出现错误“数据源中的 String 类型的给定值无法转换为指定目标列的 int 类型” :
public ActionResult Bulk()
{
string xConnStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\maarab\Documents\BulkCopy.xlsx;Extended Properties=Excel 12.0;";
using (OleDbConnection connection = new OleDbConnection(xConnStr))
{
OleDbCommand command = new OleDbCommand("Select * FROM [Sheet1$]", connection);
connection.Open();
string dbConnection = ((EntityConnection)db.Connection).StoreConnection.ConnectionString;
// Create DbDataReader to Data Worksheet
using (DbDataReader dr = command.ExecuteReader())
{
using (var bulkCopy = new SqlBulkCopy(dbConnection))
{
bulkCopy.DestinationTableName = "bm_test"
bulkCopy.WriteToServer(dr); //here I got the error
}
}
return RedirectToAction("Index");
}
关于导致此错误的原因有什么想法吗?