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

◆ MergeTable() [2/2]

void System.Data.Merger.MergeTable ( DataTable src,
DataTable dst )
inlineprivate

Definition at line 156 of file Merger.cs.

157 {
158 int count = src.Rows.Count;
159 bool flag = dst.Rows.Count == 0;
160 if (0 < count)
161 {
162 Index index = null;
163 DataKey key = default(DataKey);
164 dst.SuspendIndexEvents();
165 try
166 {
167 if (!flag && dst._primaryKey != null)
168 {
169 key = GetSrcKey(src, dst);
170 if (key.HasValue)
171 {
172 index = dst._primaryKey.Key.GetSortIndex(DataViewRowState.OriginalRows | DataViewRowState.Added);
173 }
174 }
175 foreach (DataRow row in src.Rows)
176 {
177 DataRow targetRow = null;
178 if (index != null)
179 {
180 targetRow = dst.FindMergeTarget(row, key, index);
181 }
183 }
184 }
185 finally
186 {
187 dst.RestoreIndexEvents(forceReset: true);
188 }
189 }
190 MergeExtendedProperties(src.ExtendedProperties, dst.ExtendedProperties);
191 }
DataKey GetSrcKey(DataTable src, DataTable dst)
Definition Merger.cs:501
readonly bool _preserveChanges
Definition Merger.cs:13
void MergeExtendedProperties(PropertyCollection src, PropertyCollection dst)
Definition Merger.cs:485

References System.Data.Merger._preserveChanges, System.count, System.Collections.Generic.Dictionary< TKey, TValue >.Count, System.Data.Merger.GetSrcKey(), System.index, System.key, and System.Data.Merger.MergeExtendedProperties().