This is my coding to upload a excel......
if (RevenueDumpFileUpload.HasFile)
{
string strFilePathOnServer = ConfigurationManager.AppSettings["RevenueDumpFileLocation"];
String sConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(strFilePathOnServer) + RevenueDumpFileUpload.FileName + ";Extended Properties=\"Excel 8.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text\"";
string strPostedFileName = RevenueDumpFileUpload.PostedFile.FileName;
if (strPostedFileName != string.Empty && RevenueDumpFileUpload.PostedFile.ContentLength != 0)
{
//Save-Upload File to server.
RevenueDumpFileUpload.PostedFile.SaveAs(Server.MapPath(strFilePathOnServer) + RevenueDumpFileUpload.FileName);
RevenueDumpFileUpload.FileContent.Dispose();
}
OleDbConnection Exlcon = new OleDbConnection(sConnectionString);
try
{
//Exlcon.Open();
}
catch
{
return;
}
OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [Owner$]", Exlcon);
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;
objDataset1.Clear();
objAdapter1.Fill(objDataset1, "XLData");
DataRow rowDel = objDataset1.Tables["XLData"].Rows[0];
objDataset1.Tables["XLData"].Rows.Remove(rowDel);
objDataset1.Tables["XLData"].Columns[0].ColumnName = "Industry";
objDataset1.Tables["XLData"].Columns[1].ColumnName = "Company Name";
objDataset1.Tables["XLData"].Columns[2].ColumnName = "Website";
objDataset1.Tables["XLData"].Columns[3].ColumnName = "Address";
objDataset1.Tables["XLData"].Columns[4].ColumnName = "State";
objDataset1.Tables["XLData"].Columns[5].ColumnName = "Company PhoneNumber";
objDataset1.Tables["XLData"].Columns[6].ColumnName = "Contact Person";
objDataset1.Tables["XLData"].Columns[7].ColumnName = "Title Description";
objDataset1.Tables["XLData"].Columns[8].ColumnName = "Company Size";
objDataset1.Tables["XLData"].Columns[9].ColumnName = "Mail ID";
objDataset1.Tables["XLData"].Columns[10].ColumnName = "Guess MailID";
objDataset1.Tables["XLData"].Columns[11].ColumnName = "Phone No";
objDataset1.Tables["XLData"].Columns[12].ColumnName = "Linked in id";
objDataset1.Tables["XLData"].Columns[13].ColumnName = "Comment";
methodtosave();
}
I am getting the error fill method..."TOO MANY FIELDS UNDEFINED". There are only "14"columns.....
The error is saying that fields are undefined so I'd imagine your datatable is wider than 14 columns for at least some of the rows in the data. Excel can be funny in that an empty but initialized cell is deemed to be a data cell.
Have a look at
objDataset1.Tables["XLData"].Columns.Count
and see what it's returning. You might need to add a function at the end of column name assignment that loops around the rest of the columns and assigns an arbitrary name (column{x}).You could alternatively alter your select statement to only retrieve the first 14 rows, rather than select *.
I think the issue is there in your Dataset.
objDataset1.Clear();
just clears the data, not the structure. Try usingobjDataset1 = new DataSet();
Edit:
Try using the connection string:
please see below code, try to give all locums in select string as below and also check the connection string..
OleDB & mixed Excel datatypes : missing data