public static string BD_MaterialImport(string FilePath)
{
try
{
#region 读取工作表,导入数据
//此连接可以操作.xls与.xlsx文件
string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source="
+ FilePath //execel路径
+ ";Extended Properties='Excel 12.0; HDR=NO; IMEX=0'";
DataSet ds = new DataSet();
//Sheet1工作表名称
OleDbDataAdapter oada = new OleDbDataAdapter("select * from [Sheet1$]", strConn);
oada.Fill(ds);
#endregion
#region 数据写入数据库
DataTable data = ds.Tables[0];//数据源表
using(SqlConnection con=new SqlConnection(ConStr)){
//使用Bulk批量插入大数据
Stopwatch sw = new Stopwatch();//运行时间
SqlBulkCopy bulkCopy = new SqlBulkCopy(con);
bulkCopy.DestinationTableName = "mainUser"; //数据库表名
bulkCopy.BatchSize = data.Rows.Count;
con.Open();
sw.Start();//开始计时
bulkCopy.WriteToServer(data);
sw.Stop();
Console.WriteLine(string.Format("插入{0}条记录共花费{1}毫秒,{2}分钟", data.Rows.Count, sw.ElapsedMilliseconds, Convert.ToInt32(sw.ElapsedMilliseconds)/60/60));
return "数据插入结束...";
}
#endregion
}
catch (Exception ex)
{
return ex.Message;
}
}

读取的DataTable

本文介绍了一种将Excel数据(.xls与.xlsx)批量导入数据库的方法,通过使用Microsoft.Ace.OleDb.12.0提供者读取Excel文件,并利用SqlBulkCopy进行高效的数据插入。文章详细展示了代码实现过程,包括连接字符串配置、数据读取及写入数据库的具体步骤。
1123

被折叠的 条评论
为什么被折叠?



