2010-05-17 3 views
0

У меня есть веб-страница, где пользователь может загрузить файл excel. Я пытаюсь использовать 2 разных файла - один работает без проблем, а другой дает мне эту ошибку:C# uploading file - error

Ошибка: длина не может быть меньше нуля. Имя параметра: длина

Я знаю, что иногда это происходит, когда размер файла равен нулю, но здесь это не так.

Можно ли пролить свет на эту проблему? Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

+4

Я думаю, вам нужно будет объяснить, как вы обрабатываете загрузку и включаете код, вызывающий проблемы, прежде чем кто-нибудь сможет вам помочь. –

ответ

0

Как уже отмечалось, необходима дополнительная информация. Неясно, открываете ли вы файл Excel и обрабатываете его непосредственно или читаете данные из Excel непосредственно в DataTable через ODBC или что-то еще.

Большинство моих проблем с чтением файлов Excel вызваны либо заголовками столбцов, либо данными в определенном столбце, являющемся разными типами. Сначала проверьте, имеют ли ваши два файла Excel одинаковые столбцы, все столбцы имеют имена и т. Д.

Когда вы читаете DataTable, программа угадывает тип данных каждого столбца. Если первые несколько ячеек пусты, предположение может быть неправильным. Если ваши данные похожи на мои, столбец, который выглядит так, как будто это все числа, может составлять половину фактических чисел, половина строк. Или столбцы дат могут иметь незаконную ценность.

Мне повезло записать данные из Excel в CSV-файл и написать программу schema.ini и прочитать ее с помощью текстового драйвера Microsoft, но это может не уместить ваши данные.

0

На вашей странице есть панель обновления? У меня возникла проблема, когда я пытался использовать FileUpload с панелью обновления на странице.

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