C# 4.0 如何将包含1100万条记录的大型excel上传到datatable C#windows应用程序中?
简单的回答是——你没有。1100万排?您需要用一个OldDbDataReader逐行处理这些数据,而不是试图用一个DataTable一次将它们全部阻塞在RAM中C# 4.0 如何将包含1100万条记录的大型excel上传到datatable C#windows应用程序中?,c#-4.0,C# 4.0,简单的回答是——你没有。1100万排?您需要用一个OldDbDataReader逐行处理这些数据,而不是试图用一个DataTable一次将它们全部阻塞在RAM中 private void Import_To_Grid(string FilePath, string Extension, string isHDR) { string conStr=""; switch (Extension) { case ".xls": conSt
private void Import_To_Grid(string FilePath, string Extension, string isHDR)
{
string conStr="";
switch (Extension)
{
case ".xls":
conStr = ConfigurationManager.ConnectionStrings["Excel03ConString"]
.ConnectionString;
break;
case ".xlsx":
conStr = ConfigurationManager.ConnectionStrings["Excel07ConString"]
.ConnectionString;
break;
}
conStr = String.Format(conStr, FilePath, isHDR);
OleDbConnection connExcel = new OleDbConnection(conStr);
OleDbCommand cmdExcel = new OleDbCommand();
OleDbDataAdapter oda = new OleDbDataAdapter();
DataTable dt = new DataTable();
cmdExcel.Connection = connExcel;
connExcel.Open();
DataTable dtExcelSchema;
dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
connExcel.Close();
//Read Data from First Sheet
connExcel.Open();
cmdExcel.CommandText = "SELECT * From [" + SheetName + "]";
oda.SelectCommand = cmdExcel;
oda.Fill(dt);
connExcel.Close();
}