동적으로 열을 매핑하여 SQL 대량 복사

c# columnmappings sql sqlbulkcopy

문제

파일 데이터를 데이터 세트로 읽어 들여서 열을 매핑하여 SQL 대량 복사를 사용하여 대량 삽입하려고했습니다. 데이터베이스의 모든 열 이름은 내 코드에서 작성된 소문자입니다.

내가 왜 "지정된 열이 데이터베이스에 존재하지 않습니다"예외인지 알 수 없습니다. 내가 대량 복사 개체에 매핑 된 모든 열을 볼 수 있지만. 제발 조언.

public static void BatchBulkCopy(DataTable dataTable, string DestinationTbl,  List<string> columnMapping,string filename)
{         
    // Get the DataTable 
    DataTable dtInsertRows = dataTable;

    using (SqlBulkCopy sbc = new SqlBulkCopy(program.connectionStr.ToString()))
    {
        try 
        {
            foreach (DataColumn col in dataTable.Columns)
            {                   
                sbc.ColumnMappings.Add(col.ColumnName.ToLower(), col.ColumnName.ToLower());
                // Console.WriteLine("ok\n");
            }

            sbc.DestinationTableName = DestinationTbl.ToLower();
            sbc.BulkCopyTimeout = 8000;
            sbc.DestinationTableName = "["+ DestinationTbl.ToLower() + "]";
            sbc.WriteToServer(dtInsertRows);
            sbc.Close();
        }

        catch (Exception ex)
        {           

        }      
    }
}

인기 답변

데이터베이스 연결을 열지 않았습니다. 삽입 sbc.Open (); before sbc.WriteToServer (dtInsertRows);



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