SqlBulkCopy가 작동하지 않고 오류도 발생하지 않습니다.

c# datatable sql sqlbulkcopy vb.net

문제

Excel 파일 또는 CSV에서 데이터를 읽습니다. 그 데이터를 가져 와서 데이터 테이블을 만듭니다. 그런 다음 해당 데이터 테이블을 원래 데이터베이스에서 만든 데이터 테이블과 병합합니다. 병합이 작동하고 이미 모든 데이터 유형과 열 이름을 정렬했습니다. 링크가 많지만 대부분 데이터 유형과 열 이름 / 열 텍스트 경우가 있습니다.

오류 없음. 모든 것이 원활하게 진행됩니다. 대량 복사를 시도하는 datatable VS 테이블 뷰어에서 올바른 것입니다. SQLExpress를 체크 인하면 아무런 변화가 없습니다. 내가 (행 삭제, 추가, 편집 등) 작동하는 프로젝트의 나머지 부분에 대한 동일한 연결 문자열을 사용하고 있습니다.

dt.Merge(dtnew)

    Using destinationConnection As SqlConnection = _
                   New SqlConnection(sConnectionString)
        destinationConnection.Open()

        ' Set up the bulk copy object.  
        ' The column positions in the source data reader  
        ' match the column positions in the destination table,  
        ' so there is no need to map columns. 

        Using bulkCopy As SqlBulkCopy = _
          New SqlBulkCopy(destinationConnection)
            bulkCopy.DestinationTableName = _
            "dbo.TableName"

            Try
                ' Write from the source to the destination.
                bulkCopy.WriteToServer(dt)

            Catch ex As Exception
                Console.WriteLine(ex.Message)

            Finally
                ' Close the SqlDataReader. The SqlBulkCopy 
                ' object is automatically closed at the end 
                ' of the Using block.
            End Try
        End Using

    End Using
End Sub

수락 된 답변

열 매핑도 수행하십시오.

bulkCopy.ColumnMappings.Add("source column name,"destination column name" )

또는 dt 및 dbo.Tablename에 동일한 열 이름이 있으면 다음 코드를 사용할 수 있습니다

For Each clmn As DataColumn In dt.Columns
     bulkCopy.ColumnMappings.Add(clmn.ColumnName, clmn.ColumnName)
Next


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.