[SQL] SqlBulkCopy의와 SQL 테이블에 DataTable에 열을 매핑
SQLSqlBulkCopy의와 SQL 테이블에 DataTable에 열을 매핑
나는 데이터베이스에 데이터를 추가하기 전에 C #을의 데이터 테이블에 데이터베이스 테이블의 컬럼을 맵핑하는 방법을 알고 싶습니다.
using (SqlBulkCopy s = new SqlBulkCopy(conn))
{
s.DestinationTableName = destination;
s.WriteToServer(Ads_api_ReportData);
}
해결법
-
==============================
1.당신은 아마 같은 몇 가지 일을해야합니다
당신은 아마 같은 몇 가지 일을해야합니다
public void BatchBulkCopy(DataTable dataTable, string DestinationTbl, int batchSize) { // Get the DataTable DataTable dtInsertRows = dataTable; using (SqlBulkCopy sbc = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.KeepIdentity)) { sbc.DestinationTableName = DestinationTbl; // Number of records to be processed in one go sbc.BatchSize = batchSize; // Add your column mappings here sbc.ColumnMappings.Add("field1","field3"); sbc.ColumnMappings.Add("foo","bar"); // Finally write to server sbc.WriteToServer(dtInsertRows); } }
참조 : 어떻게 SqlBulkCopyColumnMappingCollection를 사용하는? . .
또한 http://www.codeproject.com/Articles/18418/Transferring-Data-Using-SqlBulkCopy 눈 꺼풀을 실로 꿰매다
-
==============================
2.이것은 내가 그것을 위해이 도우미를 쓴 것과 같은 일반적인 작업이되었다 :
이것은 내가 그것을 위해이 도우미를 쓴 것과 같은 일반적인 작업이되었다 :
public static void AutoMapColumns(SqlBulkCopy sbc, DataTable dt) { foreach (DataColumn column in dt.Columns) { sbc.ColumnMappings.Add(column.ColumnName, column.ColumnName); } }
내가 DataTable에 자신을 생성 된 이후, 나는 SQL 테이블과 같은 그 열을 지명했다.
-
==============================
3.SqlBulkCopy의가 만들 때문에, 소스 쿼리 (또는 테이블) 및 대상 테이블의 열이 같은 이름을 가지고 동일한 순서로되어 있다면, 명시 적으로 매핑을 쓸 필요가 없다는 것을 알고 유용 할 수 있습니다 이 기본 순서와 기본 매핑.
SqlBulkCopy의가 만들 때문에, 소스 쿼리 (또는 테이블) 및 대상 테이블의 열이 같은 이름을 가지고 동일한 순서로되어 있다면, 명시 적으로 매핑을 쓸 필요가 없다는 것을 알고 유용 할 수 있습니다 이 기본 순서와 기본 매핑.
-
==============================
4.ColumnMappings를 사용 :
ColumnMappings를 사용 :
s.ColumnMappings.Add("Name", "Name"); s.ColumnMappings.Add("Address", "Address");
-
==============================
5.ColumnMappings 수집에 메소드 추가는 대상 테이블에 소스 테이블에서 열을 매핑 할 수 있습니다. 방법 ColumnMappings.Add은 열을 매핑하는 네 가지 방법을 받아들입니다.
ColumnMappings 수집에 메소드 추가는 대상 테이블에 소스 테이블에서 열을 매핑 할 수 있습니다. 방법 ColumnMappings.Add은 열을 매핑하는 네 가지 방법을 받아들입니다.
SqlBulkCopy의 당신이 ColumnMappings 컬렉션에 추가하는 동안 고려해야 할 두 열의 데이터 형식에 매우 엄격하다
from https://stackoverflow.com/questions/17469349/mapping-columns-in-a-datatable-to-a-sql-table-with-sqlbulkcopy by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 쉼표는 SQL 쿼리로 값을 구분 (0) | 2020.05.11 |
---|---|
[SQL] LEFT 대 가입한다고 설명 자세한 내용과 WHERE 조건의 성능 제안을 가입 (0) | 2020.05.11 |
[SQL] 사용 노조 또는 가입 - 빠른 [Closed]입니다 무엇 (0) | 2020.05.11 |
[SQL] LINQ의 String 비교를하는 문제 (0) | 2020.05.11 |
[SQL] 엔티티 프레임 워크 - 제 사용량 속성 (0) | 2020.05.11 |