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

◆ GetChanges() [2/2]

DataSet? System.Data.DataSet.GetChanges ( DataRowState rowStates)
inline

Definition at line 1103 of file DataSet.cs.

1104 {
1105 long scopeId = DataCommonEventSource.Log.EnterScope("<ds.DataSet.GetChanges|API> {0}, rowStates={1}", ObjectID, rowStates);
1106 try
1107 {
1108 DataSet dataSet = null;
1109 bool enforceConstraints = false;
1110 if (((uint)rowStates & 0xFFFFFFE1u) != 0)
1111 {
1112 throw ExceptionBuilder.InvalidRowState(rowStates);
1113 }
1114 TableChanges[] array = new TableChanges[Tables.Count];
1115 for (int i = 0; i < array.Length; i++)
1116 {
1117 array[i] = new TableChanges(Tables[i].Rows.Count);
1118 }
1120 for (int j = 0; j < array.Length; j++)
1121 {
1122 if (0 >= array[j].HasChanges)
1123 {
1124 continue;
1125 }
1126 if (dataSet == null)
1127 {
1128 dataSet = Clone();
1129 enforceConstraints = dataSet.EnforceConstraints;
1131 }
1132 DataTable dataTable = Tables[j];
1133 DataTable table = dataSet.Tables[dataTable.TableName, dataTable.Namespace];
1134 int num = 0;
1135 while (0 < array[j].HasChanges)
1136 {
1137 if (array[j][num])
1138 {
1139 dataTable.CopyRow(table, dataTable.Rows[num]);
1140 array[j].HasChanges--;
1141 }
1142 num++;
1143 }
1144 }
1145 if (dataSet != null)
1146 {
1148 }
1149 return dataSet;
1150 }
1151 finally
1152 {
1153 DataCommonEventSource.Log.ExitScope(scopeId);
1154 }
1155 }
DataTableCollection Tables
Definition DataSet.cs:396
virtual DataSet Clone()
Definition DataSet.cs:977
void MarkModifiedRows(TableChanges[] bitMatrix, DataRowState rowStates)
Definition DataSet.cs:1157

References System.array, System.Data.DataSet.Clone(), System.Data.InternalDataCollectionBase.Count, System.Runtime.Serialization.Dictionary, System.Data.DataSet.HasChanges(), System.Data.ExceptionBuilder.InvalidRowState(), System.Data.DataCommonEventSource.Log, System.Data.DataSet.MarkModifiedRows(), System.Data.DataSet.ObjectID, and System.Data.DataSet.Tables.