Первое случайное исключение типа "system. data.oledb. oledbexception" произошло в system.data.dll ошибка при загрузке excel в gridview
Я получаю вышеуказанную ошибку при попытке загрузить лист excel в datagrid. После серии отладок он выдает ошибку как раз тогда, когда добирается до "соединения.Open () " раздел моего кода, ниже приведен мой код
Что я уже пробовал:
protected void btnUpload_Click(object sender, EventArgs e) { string FilePath = ConfigurationManager.AppSettings["FilePath"].ToString(); string filename = string.Empty; if (FUpload.HasFile) { try { string[] allowedFile = { ".xls", ".xlsx" }; string fileExtension = System.IO.Path.GetExtension(FUpload.PostedFile.FileName); bool isValidFile = allowedFile.Contains(fileExtension); if (!isValidFile) { ErrorMessage.ForeColor = System.Drawing.Color.Red; ErrorMessage.Text = "Please Upload only excel file"; } else { filename = Path.GetFileName(Server.MapPath(FUpload.FileName)); FUpload.SaveAs(Server.MapPath(FilePath) + filename); string filePath = Server.MapPath(FilePath) + filename; OleDbConnection connection = null; if (fileExtension == ".xls") { connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + "; Extended Properties='Excel 8.0;HDR=YES;'"); } else if (fileExtension == ".xslx") { connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " + filePath + ";Extended Properties='Excel 12.0 Xml;HDR=YES;'"); } connection.Open(); DataTable data = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); string getExcelSheetName = data.Rows[0]["Table_Name"].ToString(); OleDbCommand excelCommand = new OleDbCommand(@"SELECT * FROM[ getExcelSheetName$]", connection); OleDbDataAdapter ExcelAdapter = new OleDbDataAdapter(excelCommand); DataSet ExcelDataSet = new DataSet(); ExcelAdapter.Fill(ExcelDataSet); connection.Close(); GridView1.DataSource = ExcelDataSet; GridView1.DataBind(); } } catch (Exception ex) { } } else { ErrorMessage.Text = " Please select a file to upload"; } }
AnvilRanger
Никогда не используйте пустой улов, это просто проглотит исключение. Посмотрите на вашу переменную исключения, ex, и посмотрите на внутреннее исключение, и это даст вам лучший ключ к вашей ошибке.
Mcbaloo
Внешняя таблица находится не в ожидаемом формате.. Это ошибка, которую я получил после того, как распечатал ее на экране
Mcbaloo
Спасибо за предложение. я пропустил эту часть. Запустим его сейчас и наберем ошибку когда закончим
Mcbaloo
Внешняя таблица находится не в ожидаемом формате.. Это ошибка, которую я получил после того, как распечатал ее на экране