我正在使用批量复制将Excel数据传输到SQL Server。其中一个字段是日期格式。所以我必须返回下面的代码,但是在执行时遇到错误。请帮帮我..
SqlConnection MyConnection;
MyConnection = new SqlConnection(connetionString);
MyConnection.Open();
string reportFilenPath = System.AppDomain.CurrentDomain.BaseDirectory + "InputFileForTool"
+ "\\OutSourceManualUploadFile.xlsx";
// MyConnection String to Excel Workbook
string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
+ reportFilenPath + ";Extended Properties=Excel 12.0;";
nSheetName = cboSheetName.Text;
nSheetName = nSheetName.Replace("$", "");
// Create MyConnection to Excel Workbook
using (OleDbConnection NewConnection = new OleDbConnection(excelConnectionString))
{
OleDbCommand command = new OleDbCommand
("Select * from [" + nSheetName + "$]", NewConnection);
NewConnection.Open();
OleDbDataReader dr = command.ExecuteReader();
// Bulk Copy to SQL Server
//SqlBulkCopy bulkCopy = new SqlBulkCopy(connetionString,SqlBulkCopyOptions.KeepIdentity);
using (SqlBulkCopy bc = new SqlBulkCopy(connetionString, SqlBulkCopyOptions.KeepIdentity))
//using (SqlBulkCopy bc = new SqlBulkCopy(connetionString))
{
bc.ColumnMappings.Clear();
bc.DestinationTableName = "OutSourceManualUpload";
bc.ColumnMappings.Add("Device", "Device");
bc.ColumnMappings.Add("Brand", "Brand");
bc.ColumnMappings.Add("Model", "Model");
bc.ColumnMappings.Add("Region", "Region");
bc.ColumnMappings.Add("date", "date"));
bc.ColumnMappings.Add("Resource", "Resource");
bc.WriteToServer(dr);
}
NewConnection.Close();
}
MyConnection.Close();
}