У меня есть листы с именем столбца, начинающиеся в первом ряду.Имя столбца начинается в строке 6, и мне нужно импортировать данные с этого листа на сервер SQL.я пытаюсь с небольшим количеством кода, но ничего не получаетсямой код ниже с комментариями код не работает, я использовал OLEDB для запросов и BULKcopy для данных импорта
изображение диапазона, который мне нужно импортировать в sql
filePath = path + Path.GetFileName(postedFile.FileName);
string extension = Path.GetExtension(postedFile.FileName);
postedFile.SaveAs(filePath);
string conString = string.Empty;
switch (extension)
{
case ".xls": //Excel 97-03.
conString = ConfigurationManager.ConnectionStrings["Excel03ConString"].ConnectionString;
break;
case ".xlsx": //Excel 07 and above.
conString = ConfigurationManager.ConnectionStrings["Excel07ConString"].ConnectionString;
break;
}
DataTable dt = new DataTable();
conString = string.Format(conString, filePath);
using (OleDbConnection connExcel = new OleDbConnection(conString))
{
using (OleDbCommand cmdExcel = new OleDbCommand())
{
using (OleDbDataAdapter odaExcel = new OleDbDataAdapter())
{
cmdExcel.Connection = connExcel;
//Get the name of First Sheet.
connExcel.Open();
DataTable dtExcelSchema;
dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string sheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
connExcel.Close();
//string Range = "B6";
//cmdExcel.CommandText = "SELECT * From [" + sheetName + "$B6:C10]";
// cmdExcel.CommandText = "SELECT * From [" + sheetName + Range +"]";
connExcel.Open();
cmdExcel.CommandText = "SELECT * From ["+ sheetName +"]";
odaExcel.SelectCommand = cmdExcel;
odaExcel.Fill(dt);
connExcel.Close();
}
}
}
conString = ConfigurationManager.ConnectionStrings["Constring"].ConnectionString;
using (SqlConnection con = new SqlConnection(conString))
{
using (SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(con))
{
//Set the database table name.
sqlBulkCopy.DestinationTableName = "dbo.Tipo_Adquisicion";
//[OPTIONAL]: Map the Excel columns with that of the database table
sqlBulkCopy.ColumnMappings.Add("CÓDIGO EMPRESA", "Tipo_Adquisicion");
sqlBulkCopy.ColumnMappings.Add("PERÍODO INFORMACIÓN", "descripcion");
// sqlBulkCopy.ColumnMappings.Add("Country", "Country");
con.Open();
sqlBulkCopy.WriteToServer(dt);
con.Close();
}
}