2009-04-20 24 views
0

大規模なExcelスプレッドシートをSQL Serverデータベースにコピーしようとしています。私はOldDbConnectionをExcelスプレッドシートに開き、[Sheet1 $]からすべてを読み込みます。次に、OleDbCommandを使用してスプレッドシートデータでIDataReaderを取得しています。SqlBulkCopyは255文字を超える文字列をコピーしません。

Excelシートには、256文字を超えるテキストの内容のセルがいくつかあります。しかし、これがSqlBulkCopyを使用してデータベーステーブルにアップロードされると、データベースのこれらのExcelセルの最初の255文字のみが表示されます。データベーステーブルのフィールドは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プロパティでアクセスするとフルテキストが表示されます。これがあなたにいくつかのアイデアを与えることを望みます。

関連する問題