1 //------------------------------------------------------------------------------
2 // <copyright file="SqlBulkCopyColumnMapping.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
5 // <owner current="true" primary="true">Microsoft</owner>
6 // <owner current="true" primary="false">Microsoft</owner>
7 //------------------------------------------------------------------------------
9 // Todo: rename the file
10 // Caution! ndp\fx\src\data\netmodule\sources needs to follow this change
12 namespace System.Data.SqlClient
16 using System.Data.Common;
17 using System.Data.SqlTypes;
18 using System.ComponentModel;
20 using System.Collections;
21 using System.Diagnostics;
23 // -------------------------------------------------------------------------------------------------
24 // this class helps allows the user to create association between source- and targetcolumns
28 public sealed class SqlBulkCopyColumnMapping {
29 internal string _destinationColumnName;
30 internal int _destinationColumnOrdinal;
31 internal string _sourceColumnName;
32 internal int _sourceColumnOrdinal;
34 // devnote: we don't want the user to detect the columnordinal after WriteToServer call.
35 // _sourceColumnOrdinal(s) will be copied to _internalSourceColumnOrdinal when WriteToServer executes.
36 internal int _internalDestinationColumnOrdinal;
37 internal int _internalSourceColumnOrdinal; // -1 indicates an undetermined value
39 public string DestinationColumn {
41 if (_destinationColumnName != null) {
42 return _destinationColumnName;
47 _destinationColumnOrdinal = _internalDestinationColumnOrdinal = -1;
48 _destinationColumnName = value;
52 public int DestinationOrdinal {
54 return _destinationColumnOrdinal;
58 _destinationColumnName = null;
59 _destinationColumnOrdinal = _internalDestinationColumnOrdinal = value;
62 throw ADP.IndexOutOfRange(value);
67 public string SourceColumn {
69 if (_sourceColumnName != null) {
70 return _sourceColumnName;
75 _sourceColumnOrdinal = _internalSourceColumnOrdinal = -1;
76 _sourceColumnName = value;
80 public int SourceOrdinal {
82 return _sourceColumnOrdinal;
86 _sourceColumnName = null;
87 _sourceColumnOrdinal = _internalSourceColumnOrdinal = value;
90 throw ADP.IndexOutOfRange(value);
95 public SqlBulkCopyColumnMapping () {
96 _internalSourceColumnOrdinal = -1;
99 public SqlBulkCopyColumnMapping (string sourceColumn, string destinationColumn) {
100 SourceColumn = sourceColumn;
101 DestinationColumn = destinationColumn;
104 public SqlBulkCopyColumnMapping (int sourceColumnOrdinal, string destinationColumn) {
105 SourceOrdinal = sourceColumnOrdinal;
106 DestinationColumn = destinationColumn;
109 public SqlBulkCopyColumnMapping (string sourceColumn, int destinationOrdinal) {
110 SourceColumn = sourceColumn;
111 DestinationOrdinal = destinationOrdinal;
114 public SqlBulkCopyColumnMapping (int sourceColumnOrdinal, int destinationOrdinal) {
115 SourceOrdinal = sourceColumnOrdinal;
116 DestinationOrdinal = destinationOrdinal;