Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CloneTo()

DataTable System.Data.DataTable.CloneTo ( DataTable clone,
DataSet cloneDS,
bool skipExpressionColumns )
inlineprivateinherited

Definition at line 2307 of file DataTable.cs.

2308 {
2326 DataColumnCollection columns = Columns;
2327 for (int i = 0; i < columns.Count; i++)
2328 {
2329 clone.Columns.Add(columns[i].Clone());
2330 }
2331 if (!skipExpressionColumns && cloneDS == null)
2332 {
2333 for (int j = 0; j < columns.Count; j++)
2334 {
2335 clone.Columns[columns[j].ColumnName].CopyExpressionFrom(columns[j]);
2336 }
2337 }
2338 DataColumn[] primaryKey = PrimaryKey;
2339 if (primaryKey.Length != 0)
2340 {
2341 DataColumn[] array = new DataColumn[primaryKey.Length];
2342 for (int k = 0; k < primaryKey.Length; k++)
2343 {
2344 array[k] = clone.Columns[primaryKey[k].Ordinal];
2345 }
2347 }
2348 for (int l = 0; l < Constraints.Count; l++)
2349 {
2350 ForeignKeyConstraint foreignKeyConstraint = Constraints[l] as ForeignKeyConstraint;
2351 UniqueConstraint uniqueConstraint = Constraints[l] as UniqueConstraint;
2352 if (foreignKeyConstraint != null)
2353 {
2354 if (foreignKeyConstraint.Table != foreignKeyConstraint.RelatedTable)
2355 {
2356 continue;
2357 }
2358 ForeignKeyConstraint foreignKeyConstraint2 = foreignKeyConstraint.Clone(clone);
2359 if (foreignKeyConstraint2 != null)
2360 {
2361 Constraint constraint = clone.Constraints.FindConstraint(foreignKeyConstraint2);
2362 if (constraint != null)
2363 {
2364 constraint.ConstraintName = Constraints[l].ConstraintName;
2365 }
2366 }
2367 }
2368 else
2369 {
2370 if (uniqueConstraint == null)
2371 {
2372 continue;
2373 }
2374 UniqueConstraint uniqueConstraint2 = uniqueConstraint.Clone(clone);
2375 if (uniqueConstraint2 == null)
2376 {
2377 continue;
2378 }
2379 Constraint constraint2 = clone.Constraints.FindConstraint(uniqueConstraint2);
2380 if (constraint2 == null)
2381 {
2382 continue;
2383 }
2384 constraint2.ConstraintName = Constraints[l].ConstraintName;
2385 foreach (object key in uniqueConstraint2.ExtendedProperties.Keys)
2386 {
2387 constraint2.ExtendedProperties[key] = uniqueConstraint2.ExtendedProperties[key];
2388 }
2389 }
2390 }
2391 for (int m = 0; m < Constraints.Count; m++)
2392 {
2393 if (clone.Constraints.Contains(Constraints[m].ConstraintName, caseSensitive: true))
2394 {
2395 continue;
2396 }
2397 ForeignKeyConstraint foreignKeyConstraint3 = Constraints[m] as ForeignKeyConstraint;
2398 UniqueConstraint uniqueConstraint3 = Constraints[m] as UniqueConstraint;
2399 if (foreignKeyConstraint3 != null)
2400 {
2401 if (foreignKeyConstraint3.Table == foreignKeyConstraint3.RelatedTable)
2402 {
2403 ForeignKeyConstraint foreignKeyConstraint4 = foreignKeyConstraint3.Clone(clone);
2404 if (foreignKeyConstraint4 != null)
2405 {
2406 clone.Constraints.Add(foreignKeyConstraint4);
2407 }
2408 }
2409 }
2410 else if (uniqueConstraint3 != null)
2411 {
2412 clone.Constraints.Add(uniqueConstraint3.Clone(clone));
2413 }
2414 }
2415 if (_extendedProperties != null)
2416 {
2417 foreach (object key2 in _extendedProperties.Keys)
2418 {
2419 clone.ExtendedProperties[key2] = _extendedProperties[key2];
2420 }
2421 }
2422 return clone;
2423 }
bool ICollection< KeyValuePair< TKey, TValue > >. Contains(KeyValuePair< TKey, TValue > keyValuePair)
void Add(TKey key, TValue value)
virtual ICollection Keys
Definition Hashtable.cs:532
CompareInfo _compareInfo
Definition DataTable.cs:98
PropertyCollection _extendedProperties
Definition DataTable.cs:82
IFormatProvider _formatProvider
Definition DataTable.cs:102
ConstraintCollection Constraints
Definition DataTable.cs:332
DataColumnCollection Columns
Definition DataTable.cs:327
StringComparer _hashCodeProvider
Definition DataTable.cs:104
CompareOptions _compareFlags
Definition DataTable.cs:100
DataExpression _displayExpression
Definition DataTable.cs:90
CultureInfo _culture
Definition DataTable.cs:94
DataColumn[] PrimaryKey
Definition DataTable.cs:607
virtual DataTable Clone()
SerializationFormat RemotingFormat
Definition DataTable.cs:291

References System.Data.DataTable._caseSensitive, System.Data.DataTable._caseSensitiveUserSet, System.Data.DataTable._compareFlags, System.Data.DataTable._compareInfo, System.Data.DataTable._culture, System.Data.DataTable._cultureUserSet, System.Data.DataTable._displayExpression, System.Data.DataTable._extendedProperties, System.Data.DataTable._fNestedInDataset, System.Data.DataTable._formatProvider, System.Data.DataTable._hashCodeProvider, System.Data.DataTable._repeatableElement, System.Data.DataTable._tableName, System.Data.DataTable._tableNamespace, System.Data.DataTable._tablePrefix, System.Data.DataTable._typeName, System.Collections.Generic.Dictionary< TKey, TValue >.Add(), System.array, System.Data.DataTable.Clone(), System.Data.DataTable.Columns, System.Data.DataTable.Constraints, System.Collections.Generic.Dictionary< TKey, TValue >.Contains(), System.Data.InternalDataCollectionBase.Count, System.Collections.Generic.Dictionary< TKey, TValue >.Count, System.Runtime.Serialization.Dictionary, System.key, System.Collections.Generic.Dictionary< TKey, TValue >.Keys, System.Collections.Hashtable.Keys, System.Data.DataTable.MinimumCapacity, System.Data.DataTable.PrimaryKey, and System.Data.DataTable.RemotingFormat.

Referenced by System.Data.DataTable.Clone().