Необработанное исключение типа "system. indexoutofrangeexception" произошло в system.data.dll
Я не смог получить значение 7-го столбца из excel, оно выдает ошибку как - Необработанное исключение типа "система".IndexOutOfRangeException ' произошло в System.Data.dll"
и дополнительная информация: не удается найти колонку 7.
Но у меня есть значения в excel для 7-го столбца, даже я не мог получить их после 7-го значения. Я приложил свой excelsheet и кодировку.
Будьте добры, сделайте необходимое.
int j=0; private void ImportExcel(string strFilePath) { if (File.Exists(strFilePath)) { String strExcelConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + strFilePath + ";" + "Extended Properties='Excel 8.0;HDR=Yes'"; connExcel = new OleDbConnection(strExcelConn); try { cmdExcel.Connection = connExcel; //Check if the Sheet Exists connExcel.Open(); DataTable dtExcelSchema; //Get the Schema of the WorkBook dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); connExcel.Close(); //Read Data from Sheet1 connExcel.Open(); OleDbDataAdapter da = new OleDbDataAdapter(); string SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString(); cmdExcel.CommandText = "SELECT * From [" + SheetName + "]"; da.SelectCommand = cmdExcel; da.Fill(ds); DisplayText();//Method } catch (Exception ex) { MessageBox.Show(ex.Message, "ImportExcel"); } finally { cmdExcel.Dispose(); connExcel.Dispose(); } }
private void DisplayText() { BAngle(); BFAngle(); } private void BAngle() { int Angle = 0; for (int i = j; i <= ds.Tables[0].Rows.Count; i++) { string sname = ds.Tables[0].Rows[i][Angle].ToString(); txt_BSA.Text = sname.ToString(); txt_BSA.Focus(); } } private void BFAngle() { int Fore = 7; for (int i = j; i <= ds.Tables[0].Rows.Count; i++) { string bname = ds.Tables[0].Rows[i][Fore].ToString();//It throws an error txt_BFA.Text = bname.ToString(); txt_BFA.Focus(); } }
Я прикрепил свой лист excel по ссылке ниже.
Excel.xls -Google Диск[^]
Что я уже пробовал:
частная пустота BFAngle()
{
int Fore = 7;
для (тип int я = Дж; я &л;= ДС.Таблицы[0].Строк.Граф; i++)
{
строка имя = ДС.Таблицы[0].Строки[я][передний план].Метод toString();
txt_BFA.Текст = имя.Метод toString();
txt_BFA.Фокус();
}
The Praveen Singh
в вашем excel есть 11 colomn, а в вашем цикле вы установили 7.