Скопировать данные из Excel в базу данных SQL - не загружать все записи - PullRequest
0 голосов
/ 20 марта 2020

Я загружаю данные из файла Excel в серверную базу данных SQL, используя веб-сайт ASP. NET 4.7. На самом деле это веб-сайт DotNetNuke.

Я использую следующий код. Это именно тот метод, который я использую в своем коде.

https://www.aspsnippets.com/Articles/Import-Excel-data-to-SQL-Server-Database-in-ASPNet-using-C-and-VBNet.aspx

Так что этот код работает, и я могу передать свои данные Excel в SQL База данных сервера.

Моя проблема заключается в ограничении на передачу данных.

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

Обычно мои файлы Excel имеют размер около 3 МБ и 60 000 записей или более. Но он проходит только около 18000-25000 записей. Когда я удаляю несколько столбцов Excel и пропускаю только несколько столбцов, это увеличивает количество записей. Когда я загружаю только один столбец, он передает все записи. Когда я добавляю столбцы один за другим, количество копируемых записей уменьшается.

Я чувствую, что существует ограничение на количество данных, которые мы можем передавать. Как я могу увеличить это?

В web.config я изменил настройки так:

<!-- allow large file uploads -->
<httpRuntime targetFramework="4.7.2" shutdownTimeout="21600" 
             executionTimeout="60000" useFullyQualifiedRedirectUrl="true" 
             maxRequestLength="2097151" requestLengthDiskThreshold="2097151" 
             maxUrlLength="2048" requestPathInvalidCharacters="&lt;,&gt;,*,%,:,\,?" 
             enableVersionHeader="false" requestValidationMode="2.0" 
             fcnMode="Single" />

Но не повезло. Это ничего не изменило.

Что еще я должен рассмотреть для этого?

  • Настройки сервера? (У меня есть доступ RDP)
  • Настройки пула приложений?
  • Настройки сайта?
  • SQL Настройки сервера?
  • Настройки базы данных?
  • Есть ли ограничение в коде, который я использую?

Пожалуйста, вы можете посоветовать это? Я очень ценю вашу поддержку в этом.

Спасибо.

1 Ответ

0 голосов
/ 21 марта 2020

Я нашел решение этой проблемы.

Я использовал свою строку подключения к файлу Excel следующим образом.

<add name="Excel07+ConString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=YES;'" />

Я добавил 'IMEX = 1;' к нему, как показано ниже.

<add name="Excel07+ConString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=YES;IMEX=1;'" />

Это решило мою проблему. Большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...