Использование OleDBDataReader для чтения Excel без извлечения всего содержимого ячеек столбца заголовка

У меня есть лист Excel, который я использую для заполнения данных в базе данных. Создается впечатление, что OleDBDataReader фактически считывает только определенное количество символов из заголовка столбца, прежде чем обрезать остальные.

Есть ли способ обойти это?

Как я получаю заголовки столбцов:

OleDbCommand oleDbCommand = new OleDbCommand("select * from [sheet1$]",
OleDbConnection);
OleDbDataReader reader = oleDbCommand.ExecuteReader();
DataTable dataTable = new DataTable();
dataTable.Load(reader);

foreach (DataColumn column in dataTable.Columns)
{
string columnName = column.ColumnName;
}

Ожидаемый результат: Целевые программы для удовлетворения потребностей студентов в обеспечении благосостояния. Например, breakfast clubs

Фактический результат: Целевые программы для удовлетворения потребностей студентов в обеспечении благосостояния. Например, br

Я также пытался использовать метод reader.GetName(i) для получения информации с тем же результатом.


person Rollcredit    schedule 27.07.2011    source источник


Ответы (1)


64 символа — это ограничение заголовка столбца для программы чтения Jet Engine.

http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/2fb51d81-3d64-445f-806a-519861b561ba/

Извините, я не могу найти лучшую ссылку.

person dbugger    schedule 27.07.2011
comment
Спасибо за это. У меня было ощущение, что это что-то вроде этого. - person Rollcredit; 27.07.2011