У меня есть один файл Excel, содержащий несколько листов. Каждое имя листа совпадает с именем таблицы в SQL Server. Мне нужно вставить данные этих листов Excel в соответствующие таблицы в базе данных.У меня есть один лист Excel с несколькими вкладками, вам нужно вставить эти данные в SQL Server с помощью C#
В 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
Спасибо Dispersia, на самом деле у меня есть одно преимущество с несколькими листами в вкладках, поэтому вам нужно вставлять данные в sql-сервер в несколько таблиц, одна вкладка - одна таблица – King