【发布时间】:2016-12-07 21:51:43
【问题描述】:
我有一个包含多张工作表的 Excel 文件。每个工作表名称都与 SQL Server 中的表名称相同。我需要将这些 Excel 工作表的数据插入到数据库中的各个表中。
SQL server DB 中有 13 个选项卡和 13 个表。
我可以使用下面的代码将一张表的数据插入到一张表中。
String strConnection = "Data Source=.;Initial Catalog=<>;Integrated Security=True";
String excelConnString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0\"", filePath);
// Create Connection to Excel work book
OleDbConnection conn = new OleDbConnection(excelConnString);
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataTable dt = new DataTable();
conn.Open();
DataTable dtSheet = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string sheetName = dtSheet.Rows[0]["table_name"].ToString();
cmd.CommandText = "select * from [" + sheetName + "]";
da.SelectCommand = cmd;
da.Fill(dt);
using (OleDbDataReader dReader = cmd.ExecuteReader())
{
using(SqlBulkCopy sqlBulk = new SqlBulkCopy(strConnection))
{
//Give your Destination table name
sqlBulk.DestinationTableName = "TABLE NAME IN SQL";
sqlBulk.WriteToServer(dReader);
conn.Close();
}
}
如何插入所有工作表中的数据?
【问题讨论】:
-
您实际上在哪里遇到问题?
-
感谢 Dispersia,其实我有一个 excel,标签中有多个工作表,所以需要在 sql server 的多个表中插入数据,一个标签 - 一个表
标签: c# asp.net sql-server sqlbulkcopy