2009-04-20 2 views
0

Я пытаюсь скопировать большую электронную таблицу Excel в базу данных SQL Server. Я открываю OldDbConnection в электронную таблицу Excel и читаю все, начиная с [Sheet1 $]. Затем я использую OleDbCommand для получения IDataReader с данными электронной таблицы.SqlBulkCopy не копирует строки> длиной 255 символов

В листе Excel имеется несколько ячеек с содержанием текста более 256 символов. Но, как только это будет загружено в таблицу базы данных с помощью SqlBulkCopy, я вижу только первые 255 символов из этих excel-ячеек в базе данных. Поля таблицы базы данных имеют длину 5000 символов.

Ограничивает ли размер SqlBulkCopy размер поля? Благодаря!

ответ

0

В моем опыте с соединениями данных ADO может быть лучше получить и отправить большие текстовые строки при изменении расположения курсора на наборе записей на клиентскую сторону.

здесь короткий пример:

Dim rstADO As ADODB.Recordset 
Set rstADO = New ADODB.Recordset 
rstADO.CursorLocation = adUseClient 

но присмотревшись на своем посту, я думаю, что вы в настоящее время не используется ADO, в любом случае может быть стоит посмотреть на то, если вы решили попробовать использовать ADO в своем подходе , Удачи!

0

Я не знаю о SqlBulkCopy и OldDbConnection.
однако Excel может выдавать первые 255 символов.
В Excel, если вы получаете доступ к значению ячеек с использованием свойства .value, вы получаете первые 255 символов, и если вы получаете его с использованием свойства .text, вы получаете полный текст. Надеюсь, это даст вам некоторую идею.

Смежные вопросы