Первый столбец не возвращается при чтении листа excel с помощью oledb reader
Привет,
Я столкнулся с проблемой чтения листа excel с помощью oledb reader, первый столбец не возвращается читателем и показывает последнюю головку столбца F14, а столбец был пуст.
но когда я открываю лист excel и дважды щелкаю по границе строки заголовка для автоматической настройки и автоматического повторного размера, сохраняйте excel и снова Читайте, а затем все столбцы возвращаются идеально.
Лист Excel, который я пытаюсь прочитать, который генерирует с помощью php-приложения, и после загрузки этого excel мы ставим на мое приложение для чтения данных из excel, но выше проблема приходит.
Я уже сделал много исследований и разработок, даже я даю ширину в листе excel при создании excel с помощью веб-приложения. Мой код выглядит так
private bool Import_To_Grid(string FilePath, string Extension) { try { string conStr = ""; switch (Extension) { case ".xls": //Excel 97-03 conStr = ConfigurationManager.ConnectionStrings["Excel03ConString"] .ConnectionString; break; case ".xlsx": //Excel 07 and above conStr = ConfigurationManager.ConnectionStrings["Excel07ConString"] .ConnectionString; break; } conStr = String.Format(conStr, FilePath); OleDbConnection connExcel = new OleDbConnection(conStr); OleDbCommand cmdExcel = new OleDbCommand(); OleDbDataAdapter oda = new OleDbDataAdapter(); cmdExcel.Connection = connExcel; //Get the name of First Sheet connExcel.Open(); Exceldt = new DataTable(); 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(Exceldt); connExcel.Close(); //Bind Data to GridView dgv_showexcel.DataSource = Exceldt; BindDataToCmbClass(); //binddata to class for filter cmb_userclass.SelectedIndex = 0; return true; } catch (Exception ex) { MessageBox.Show("Its Error" + " " + ex.ToString()); return false; } }
конфиг
<add name="Excel03ConString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';" /> <add name="Excel07ConString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=Yes;IMEX=1';" />
[РЕДАКТИРОВАТЬ]
Ошибка:
"No value given for one or more required parameters." at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable) at ImageMetaDataApplier.Home.Import_To_Grid(String FilePath, String Extension) in h:\Meharwan Singh\Desktop Application\ImageMetaCreator\ImageMetaDataApplier\home.cs:line 71
[/РЕДАКТИРОВАТЬ]
sagar dindorkar
Я удалил IMEX=1 все еще сталкиваясь с той же проблемой
Maciej Los
Использование именованных столбцов: SELECT Col1, Col2, Col3, ... Col13 FROM [SheetName]
.
sagar dindorkar
Привет Мацей,
да, я сделал это таким образом, но через ошибку параметра не прошел достаточно.
Maciej Los
Какая ошибка? Не понимать...
sagar dindorkar
--- содержание было перенесено на вопрос ---
Мацей Лос
sagar dindorkar
--- содержание было перенесено на вопрос ---
Мацей Лос
sagar dindorkar
Спасибо!!!
пожалуйста, помогите мне!!
Я устал от последних дней буксировки, чтобы найти этот вопрос
nilesh sawardekar
Вы не получаете первую строку или первый столбец..?
sagar dindorkar
Первая Колонка
nilesh sawardekar
удивительно что ваш код работает в моем vs
nilesh sawardekar
вам нужен первый заголовок или следующий столбец?
sagar dindorkar
@nilesh sawardekar первая очень-очень благодарны вам получить ответ и показать заинтересованность в вопросе, да, я знаю его работы, даже для меня работа очень хорошая, но когда я использовать загруженный прочие в этом коде есть проблема, как я уже упоминал в моем вопросе инструкция, сгенерированные в Excel читать очень приятно, даже мой другое приложение созданный лист Excel скачать на меня, а потом я нажимаю на любой лист Excel столбец, а затем нажал на авто-размер на границы столбца затем сохраните файл. тогда этот код прекрасно читает файлы.
sagar dindorkar
Я хочу прочитать все данные, существующие в файле excel
sagar dindorkar
Я не получу первую колонку
CHill60
Когда вы связываете данные, вы устанавливаете значения для свойств DataPropertyName столбцов - может быть, вы пропустили одно из них?
sagar dindorkar
Я использую это, которое включено здесь в запрос всех столбцов
Строка sCommand = @"SELECT [Username],[Password],[Season],[Project_id],[Class],[School],[First_name],[Last_name],[Address],[Postalcode],[Town],[Telephone],[Date_of_birth],[Student_id] из ["+SheetName+"]";
CHill60
Извините - я имел в виду, что в свойствах datagridview вы можете определить, какой столбец из вашего запроса отображается в каждом столбце сетки.
sagar dindorkar
Все столбцы и я проверяю с помощью считывателя данных точки останова не возвращая первый столбец
sagar dindorkar
дайте мне знать одну вещь, если мы создадим файл excel с помощью нашей программы, что первый столбец времени был заблокирован программой или что-то в этом роде??
клево, когда я использую
Выберите * из [рабочего листа$]
затем я получаю данные всех столбцов, но я не получил имя первого столбца и данные этого столбца.
и
Второй случай заключается в том, что когда я открываю файл Excel и дважды щелкаю строку столбца заголовка(любую), то после сохранения этого листа excel снова получаю все данные столбцов идеально
rajah rajah
Привет, Санкар, у тебя есть решение для этой проблемы ? я тоже застрял с той же проблемой. Пожалуйста дайте мне знать если у вас есть решение