Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
DataTableReader.cs
Go to the documentation of this file.
5
6namespace System.Data;
7
8public sealed class DataTableReader : DbDataReader
9{
10 private readonly DataTable[] _tables;
11
12 private bool _isOpen = true;
13
15
16 private int _tableCounter = -1;
17
18 private int _rowCounter = -1;
19
21
23
24 private bool _hasRows = true;
25
26 private bool _reachEORows;
27
28 private bool _currentRowRemoved;
29
30 private bool _schemaIsChanged;
31
32 private bool _started;
33
34 private bool _readerIsInvalid;
35
37
38 private bool _tableCleared;
39
40 private bool ReaderIsInvalid
41 {
42 get
43 {
44 return _readerIsInvalid;
45 }
46 set
47 {
49 {
51 if (_readerIsInvalid && _listener != null)
52 {
54 }
55 }
56 }
57 }
58
59 private bool IsSchemaChanged
60 {
61 get
62 {
63 return _schemaIsChanged;
64 }
65 set
66 {
68 {
70 if (_listener != null)
71 {
73 }
74 }
75 }
76 }
77
79
80 public override int Depth
81 {
82 get
83 {
84 ValidateOpen("Depth");
86 return 0;
87 }
88 }
89
90 public override bool IsClosed => !_isOpen;
91
92 public override int RecordsAffected
93 {
94 get
95 {
97 return 0;
98 }
99 }
100
101 public override bool HasRows
102 {
103 get
104 {
105 ValidateOpen("HasRows");
107 return _hasRows;
108 }
109 }
110
111 public override object this[int ordinal]
112 {
113 get
114 {
115 ValidateOpen("Item");
117 if (_currentDataRow == null || _currentDataRow.RowState == DataRowState.Deleted)
118 {
119 ReaderIsInvalid = true;
121 }
122 try
123 {
124 return _currentDataRow[ordinal];
125 }
127 {
129 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
130 }
131 }
132 }
133
134 public override object this[string name]
135 {
136 get
137 {
138 ValidateOpen("Item");
140 if (_currentDataRow == null || _currentDataRow.RowState == DataRowState.Deleted)
141 {
142 ReaderIsInvalid = true;
144 }
145 return _currentDataRow[name];
146 }
147 }
148
149 public override int FieldCount
150 {
151 get
152 {
153 ValidateOpen("FieldCount");
156 }
157 }
158
159 public DataTableReader(DataTable dataTable)
160 {
161 if (dataTable == null)
162 {
163 throw ExceptionBuilder.ArgumentNull("DataTable");
164 }
165 _tables = new DataTable[1] { dataTable };
166 Init();
167 }
168
169 public DataTableReader(DataTable[] dataTables)
170 {
171 if (dataTables == null)
172 {
173 throw ExceptionBuilder.ArgumentNull("DataTable");
174 }
175 if (dataTables.Length == 0)
176 {
178 }
179 _tables = new DataTable[dataTables.Length];
180 for (int i = 0; i < dataTables.Length; i++)
181 {
182 if (dataTables[i] == null)
183 {
184 throw ExceptionBuilder.ArgumentNull("DataTable");
185 }
186 _tables[i] = dataTables[i];
187 }
188 Init();
189 }
190
191 private void Init()
192 {
193 _tableCounter = 0;
194 _reachEORows = false;
195 _schemaIsChanged = false;
197 _hasRows = _currentDataTable.Rows.Count > 0;
198 ReaderIsInvalid = false;
200 }
201
202 public override void Close()
203 {
204 if (_isOpen)
205 {
206 if (_listener != null)
207 {
209 }
210 _listener = null;
211 _schemaTable = null;
212 _isOpen = false;
213 }
214 }
215
216 public override DataTable GetSchemaTable()
217 {
218 ValidateOpen("GetSchemaTable");
220 if (_schemaTable == null)
221 {
223 }
224 return _schemaTable;
225 }
226
227 public override bool NextResult()
228 {
229 ValidateOpen("NextResult");
230 if (_tableCounter == _tables.Length - 1)
231 {
232 return false;
233 }
235 if (_listener != null)
236 {
238 }
239 _schemaTable = null;
240 _rowCounter = -1;
241 _currentRowRemoved = false;
242 _reachEORows = false;
243 _schemaIsChanged = false;
244 _started = false;
245 ReaderIsInvalid = false;
246 _tableCleared = false;
247 _hasRows = _currentDataTable.Rows.Count > 0;
248 return true;
249 }
250
251 public override bool Read()
252 {
253 if (!_started)
254 {
255 _started = true;
256 }
257 ValidateOpen("Read");
259 if (_reachEORows)
260 {
261 return false;
262 }
264 {
265 _reachEORows = true;
266 if (_listener != null)
267 {
269 }
270 return false;
271 }
272 _rowCounter++;
275 while (_currentDataRow.RowState == DataRowState.Deleted)
276 {
277 _rowCounter++;
279 {
280 _reachEORows = true;
281 if (_listener != null)
282 {
284 }
285 return false;
286 }
289 }
291 {
292 _currentRowRemoved = false;
293 }
294 return true;
295 }
296
297 [return: DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.PublicProperties)]
298 public override Type GetProviderSpecificFieldType(int ordinal)
299 {
300 ValidateOpen("GetProviderSpecificFieldType");
302 return GetFieldType(ordinal);
303 }
304
305 public override object GetProviderSpecificValue(int ordinal)
306 {
307 ValidateOpen("GetProviderSpecificValue");
309 return GetValue(ordinal);
310 }
311
312 public override int GetProviderSpecificValues(object[] values)
313 {
314 ValidateOpen("GetProviderSpecificValues");
316 return GetValues(values);
317 }
318
319 public override bool GetBoolean(int ordinal)
320 {
321 ValidateState("GetBoolean");
323 try
324 {
325 return (bool)_currentDataRow[ordinal];
326 }
328 {
330 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
331 }
332 }
333
334 public override byte GetByte(int ordinal)
335 {
336 ValidateState("GetByte");
338 try
339 {
340 return (byte)_currentDataRow[ordinal];
341 }
343 {
345 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
346 }
347 }
348
349 public override long GetBytes(int ordinal, long dataIndex, byte[]? buffer, int bufferIndex, int length)
350 {
351 ValidateState("GetBytes");
353 byte[] array;
354 try
355 {
356 array = (byte[])_currentDataRow[ordinal];
357 }
359 {
361 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
362 }
363 if (buffer == null)
364 {
365 return array.Length;
366 }
367 int num = (int)dataIndex;
368 int num2 = Math.Min(array.Length - num, length);
369 if (num < 0)
370 {
371 throw ADP.InvalidSourceBufferIndex(array.Length, num, "dataIndex");
372 }
373 if (bufferIndex < 0 || (bufferIndex > 0 && bufferIndex >= buffer.Length))
374 {
375 throw ADP.InvalidDestinationBufferIndex(buffer.Length, bufferIndex, "bufferIndex");
376 }
377 if (0 < num2)
378 {
379 Array.Copy(array, dataIndex, buffer, bufferIndex, num2);
380 }
381 else
382 {
383 if (length < 0)
384 {
386 }
387 num2 = 0;
388 }
389 return num2;
390 }
391
392 public override char GetChar(int ordinal)
393 {
394 ValidateState("GetChar");
396 try
397 {
398 return (char)_currentDataRow[ordinal];
399 }
401 {
403 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
404 }
405 }
406
407 public override long GetChars(int ordinal, long dataIndex, char[]? buffer, int bufferIndex, int length)
408 {
409 ValidateState("GetChars");
411 char[] array;
412 try
413 {
414 array = (char[])_currentDataRow[ordinal];
415 }
417 {
419 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
420 }
421 if (buffer == null)
422 {
423 return array.Length;
424 }
425 int num = (int)dataIndex;
426 int num2 = Math.Min(array.Length - num, length);
427 if (num < 0)
428 {
429 throw ADP.InvalidSourceBufferIndex(array.Length, num, "dataIndex");
430 }
431 if (bufferIndex < 0 || (bufferIndex > 0 && bufferIndex >= buffer.Length))
432 {
433 throw ADP.InvalidDestinationBufferIndex(buffer.Length, bufferIndex, "bufferIndex");
434 }
435 if (0 < num2)
436 {
437 Array.Copy(array, dataIndex, buffer, bufferIndex, num2);
438 }
439 else
440 {
441 if (length < 0)
442 {
444 }
445 num2 = 0;
446 }
447 return num2;
448 }
449
450 public override string GetDataTypeName(int ordinal)
451 {
452 ValidateOpen("GetDataTypeName");
454 return GetFieldType(ordinal).Name;
455 }
456
457 public override DateTime GetDateTime(int ordinal)
458 {
459 ValidateState("GetDateTime");
461 try
462 {
463 return (DateTime)_currentDataRow[ordinal];
464 }
466 {
468 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
469 }
470 }
471
472 public override decimal GetDecimal(int ordinal)
473 {
474 ValidateState("GetDecimal");
476 try
477 {
478 return (decimal)_currentDataRow[ordinal];
479 }
481 {
483 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
484 }
485 }
486
487 public override double GetDouble(int ordinal)
488 {
489 ValidateState("GetDouble");
491 try
492 {
493 return (double)_currentDataRow[ordinal];
494 }
496 {
498 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
499 }
500 }
501
502 [return: DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.PublicProperties)]
503 public override Type GetFieldType(int ordinal)
504 {
505 ValidateOpen("GetFieldType");
507 try
508 {
509 return _currentDataTable.Columns[ordinal].DataType;
510 }
512 {
514 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
515 }
516 }
517
518 public override float GetFloat(int ordinal)
519 {
520 ValidateState("GetFloat");
522 try
523 {
524 return (float)_currentDataRow[ordinal];
525 }
527 {
529 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
530 }
531 }
532
533 public override Guid GetGuid(int ordinal)
534 {
535 ValidateState("GetGuid");
537 try
538 {
539 return (Guid)_currentDataRow[ordinal];
540 }
542 {
544 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
545 }
546 }
547
548 public override short GetInt16(int ordinal)
549 {
550 ValidateState("GetInt16");
552 try
553 {
554 return (short)_currentDataRow[ordinal];
555 }
557 {
559 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
560 }
561 }
562
563 public override int GetInt32(int ordinal)
564 {
565 ValidateState("GetInt32");
567 try
568 {
569 return (int)_currentDataRow[ordinal];
570 }
572 {
574 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
575 }
576 }
577
578 public override long GetInt64(int ordinal)
579 {
580 ValidateState("GetInt64");
582 try
583 {
584 return (long)_currentDataRow[ordinal];
585 }
587 {
589 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
590 }
591 }
592
593 public override string GetName(int ordinal)
594 {
595 ValidateOpen("GetName");
597 try
598 {
599 return _currentDataTable.Columns[ordinal].ColumnName;
600 }
602 {
604 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
605 }
606 }
607
608 public override int GetOrdinal(string name)
609 {
610 ValidateOpen("GetOrdinal");
612 DataColumn dataColumn = _currentDataTable.Columns[name];
613 if (dataColumn != null)
614 {
615 return dataColumn.Ordinal;
616 }
618 }
619
620 public override string GetString(int ordinal)
621 {
622 ValidateState("GetString");
624 try
625 {
626 return (string)_currentDataRow[ordinal];
627 }
629 {
631 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
632 }
633 }
634
635 public override object GetValue(int ordinal)
636 {
637 ValidateState("GetValue");
639 try
640 {
641 return _currentDataRow[ordinal];
642 }
644 {
646 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
647 }
648 }
649
650 public override int GetValues(object[] values)
651 {
652 ValidateState("GetValues");
654 if (values == null)
655 {
656 throw ExceptionBuilder.ArgumentNull("values");
657 }
659 if (_currentDataRow.ItemArray.Length <= values.Length)
660 {
661 return _currentDataRow.ItemArray.Length;
662 }
663 return values.Length;
664 }
665
666 public override bool IsDBNull(int ordinal)
667 {
668 ValidateState("IsDBNull");
670 try
671 {
672 return _currentDataRow.IsNull(ordinal);
673 }
675 {
677 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
678 }
679 }
680
681 public override IEnumerator GetEnumerator()
682 {
683 ValidateOpen("GetEnumerator");
684 return new DbEnumerator((IDataReader)this);
685 }
686
688 {
689 if (table == null)
690 {
691 throw ExceptionBuilder.ArgumentNull("DataTable");
692 }
693 DataTable dataTable = new DataTable("SchemaTable");
694 dataTable.Locale = CultureInfo.InvariantCulture;
695 DataColumn column = new DataColumn(SchemaTableColumn.ColumnName, typeof(string));
696 DataColumn column2 = new DataColumn(SchemaTableColumn.ColumnOrdinal, typeof(int));
697 DataColumn dataColumn = new DataColumn(SchemaTableColumn.ColumnSize, typeof(int));
698 DataColumn column3 = new DataColumn(SchemaTableColumn.NumericPrecision, typeof(short));
699 DataColumn column4 = new DataColumn(SchemaTableColumn.NumericScale, typeof(short));
700 DataColumn column5 = GetSystemTypeDataColumn();
701 DataColumn column6 = new DataColumn(SchemaTableColumn.ProviderType, typeof(int));
702 DataColumn dataColumn2 = new DataColumn(SchemaTableColumn.IsLong, typeof(bool));
703 DataColumn column7 = new DataColumn(SchemaTableColumn.AllowDBNull, typeof(bool));
704 DataColumn dataColumn3 = new DataColumn(SchemaTableOptionalColumn.IsReadOnly, typeof(bool));
705 DataColumn dataColumn4 = new DataColumn(SchemaTableOptionalColumn.IsRowVersion, typeof(bool));
706 DataColumn column8 = new DataColumn(SchemaTableColumn.IsUnique, typeof(bool));
707 DataColumn dataColumn5 = new DataColumn(SchemaTableColumn.IsKey, typeof(bool));
708 DataColumn dataColumn6 = new DataColumn(SchemaTableOptionalColumn.IsAutoIncrement, typeof(bool));
709 DataColumn column9 = new DataColumn(SchemaTableColumn.BaseSchemaName, typeof(string));
710 DataColumn dataColumn7 = new DataColumn(SchemaTableOptionalColumn.BaseCatalogName, typeof(string));
711 DataColumn dataColumn8 = new DataColumn(SchemaTableColumn.BaseTableName, typeof(string));
712 DataColumn column10 = new DataColumn(SchemaTableColumn.BaseColumnName, typeof(string));
713 DataColumn dataColumn9 = new DataColumn(SchemaTableOptionalColumn.AutoIncrementSeed, typeof(long));
714 DataColumn dataColumn10 = new DataColumn(SchemaTableOptionalColumn.AutoIncrementStep, typeof(long));
715 DataColumn column11 = new DataColumn(SchemaTableOptionalColumn.DefaultValue, typeof(object));
716 DataColumn column12 = new DataColumn(SchemaTableOptionalColumn.Expression, typeof(string));
718 DataColumn dataColumn11 = new DataColumn(SchemaTableOptionalColumn.BaseTableNamespace, typeof(string));
720 dataColumn.DefaultValue = -1;
721 if (table.DataSet != null)
722 {
723 dataColumn7.DefaultValue = table.DataSet.DataSetName;
724 }
725 dataColumn8.DefaultValue = table.TableName;
726 dataColumn11.DefaultValue = table.Namespace;
727 dataColumn4.DefaultValue = false;
728 dataColumn2.DefaultValue = false;
729 dataColumn3.DefaultValue = false;
730 dataColumn5.DefaultValue = false;
731 dataColumn6.DefaultValue = false;
732 dataColumn9.DefaultValue = 0;
733 dataColumn10.DefaultValue = 1;
734 dataTable.Columns.Add(column);
735 dataTable.Columns.Add(column2);
736 dataTable.Columns.Add(dataColumn);
737 dataTable.Columns.Add(column3);
738 dataTable.Columns.Add(column4);
739 dataTable.Columns.Add(column5);
740 dataTable.Columns.Add(column6);
741 dataTable.Columns.Add(dataColumn2);
742 dataTable.Columns.Add(column7);
743 dataTable.Columns.Add(dataColumn3);
744 dataTable.Columns.Add(dataColumn4);
745 dataTable.Columns.Add(column8);
746 dataTable.Columns.Add(dataColumn5);
747 dataTable.Columns.Add(dataColumn6);
748 dataTable.Columns.Add(dataColumn7);
749 dataTable.Columns.Add(column9);
750 dataTable.Columns.Add(dataColumn8);
751 dataTable.Columns.Add(column10);
752 dataTable.Columns.Add(dataColumn9);
753 dataTable.Columns.Add(dataColumn10);
754 dataTable.Columns.Add(column11);
755 dataTable.Columns.Add(column12);
756 dataTable.Columns.Add(column13);
757 dataTable.Columns.Add(dataColumn11);
758 dataTable.Columns.Add(column14);
759 foreach (DataColumn column15 in table.Columns)
760 {
761 DataRow dataRow = dataTable.NewRow();
762 dataRow[column] = column15.ColumnName;
763 dataRow[column2] = column15.Ordinal;
764 dataRow[column5] = column15.DataType;
765 if (column15.DataType == typeof(string))
766 {
767 dataRow[dataColumn] = column15.MaxLength;
768 }
769 dataRow[column7] = column15.AllowDBNull;
770 dataRow[dataColumn3] = column15.ReadOnly;
771 dataRow[column8] = column15.Unique;
772 if (column15.AutoIncrement)
773 {
774 dataRow[dataColumn6] = true;
775 dataRow[dataColumn9] = column15.AutoIncrementSeed;
776 dataRow[dataColumn10] = column15.AutoIncrementStep;
777 }
778 if (column15.DefaultValue != DBNull.Value)
779 {
780 dataRow[column11] = column15.DefaultValue;
781 }
782 if (column15.Expression.Length != 0)
783 {
784 bool flag = false;
785 DataColumn[] dependency = column15.DataExpression.GetDependency();
786 for (int i = 0; i < dependency.Length; i++)
787 {
788 if (dependency[i].Table != table)
789 {
790 flag = true;
791 break;
792 }
793 }
794 if (!flag)
795 {
796 dataRow[column12] = column15.Expression;
797 }
798 }
799 dataRow[column13] = column15.ColumnMapping;
800 dataRow[column10] = column15.ColumnName;
801 dataRow[column14] = column15.Namespace;
802 dataTable.Rows.Add(dataRow);
803 }
804 DataColumn[] primaryKey = table.PrimaryKey;
805 foreach (DataColumn dataColumn13 in primaryKey)
806 {
807 dataTable.Rows[dataColumn13.Ordinal][dataColumn5] = true;
808 }
809 dataTable.AcceptChanges();
810 return dataTable;
811 [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2111:ReflectionToDynamicallyAccessedMembers", Justification = "The problem is Type.TypeInitializer which requires constructors on the Type instance.In this case the TypeInitializer property is not accessed dynamically.")]
812 static DataColumn GetSystemTypeDataColumn()
813 {
814 return new DataColumn(SchemaTableColumn.DataType, typeof(Type));
815 }
816 }
817
818 private void ValidateOpen(string caller)
819 {
820 if (!_isOpen)
821 {
822 throw ADP.DataReaderClosed(caller);
823 }
824 }
825
837
860
861 private void ValidateRow(int rowPosition)
862 {
863 if (ReaderIsInvalid)
864 {
866 }
867 if (0 > rowPosition || _currentDataTable.Rows.Count <= rowPosition)
868 {
869 ReaderIsInvalid = true;
871 }
872 }
873
874 internal void SchemaChanged()
875 {
876 IsSchemaChanged = true;
877 }
878
879 internal void DataTableCleared()
880 {
881 if (_started)
882 {
883 _rowCounter = -1;
884 if (!_reachEORows)
885 {
886 _currentRowRemoved = true;
887 }
888 }
889 }
890
892 {
893 if (!_started || (_rowCounter == -1 && !_tableCleared))
894 {
895 return;
896 }
897 switch (args.Action)
898 {
899 case DataRowAction.Add:
902 {
903 _rowCounter++;
904 }
905 break;
906 case DataRowAction.Delete:
907 case DataRowAction.Rollback:
908 case DataRowAction.Commit:
909 if (args.Row.RowState != DataRowState.Detached)
910 {
911 break;
912 }
913 if (args.Row != _currentDataRow)
914 {
915 if (_rowCounter != 0)
916 {
919 {
920 _rowCounter--;
921 }
922 }
923 }
924 else
925 {
926 _currentRowRemoved = true;
927 if (_rowCounter > 0)
928 {
929 _rowCounter--;
931 }
932 else
933 {
934 _rowCounter = -1;
935 _currentDataRow = null;
936 }
937 }
938 break;
939 }
940 }
941}
static unsafe void Copy(Array sourceArray, Array destinationArray, int length)
Definition Array.cs:624
static readonly DBNull Value
Definition DBNull.cs:8
static ArgumentOutOfRangeException InvalidSourceBufferIndex(int maxLen, long srcOffset, string parameterName)
Definition ADP.cs:927
static ArgumentOutOfRangeException InvalidDestinationBufferIndex(int maxLen, int dstOffset, string parameterName)
Definition ADP.cs:932
static Exception DataReaderClosed([CallerMemberName] string method="")
Definition ADP.cs:922
static Exception InvalidDataLength(long length)
Definition ADP.cs:942
virtual MappingType ColumnMapping
DataExpression? DataExpression
object?[] ItemArray
Definition DataRow.cs:303
DataRowState RowState
Definition DataRow.cs:134
bool IsNull(int columnIndex)
Definition DataRow.cs:984
override decimal GetDecimal(int ordinal)
override int GetValues(object[] values)
DataTableReaderListener _listener
void ValidateOpen(string caller)
void ValidateRow(int rowPosition)
override string GetName(int ordinal)
override int GetInt32(int ordinal)
override bool IsDBNull(int ordinal)
override float GetFloat(int ordinal)
override object GetValue(int ordinal)
override Type GetFieldType(int ordinal)
override string GetString(int ordinal)
DataTableReader(DataTable dataTable)
static DataTable GetSchemaTableFromDataTable(DataTable table)
override Type GetProviderSpecificFieldType(int ordinal)
override byte GetByte(int ordinal)
override string GetDataTypeName(int ordinal)
override double GetDouble(int ordinal)
override DateTime GetDateTime(int ordinal)
void ValidateState(string caller)
override short GetInt16(int ordinal)
override object GetProviderSpecificValue(int ordinal)
override Guid GetGuid(int ordinal)
readonly DataTable[] _tables
override int GetProviderSpecificValues(object[] values)
override bool GetBoolean(int ordinal)
void DataChanged(DataRowChangeEventArgs args)
override long GetBytes(int ordinal, long dataIndex, byte[]? buffer, int bufferIndex, int length)
override char GetChar(int ordinal)
override IEnumerator GetEnumerator()
override long GetChars(int ordinal, long dataIndex, char[]? buffer, int bufferIndex, int length)
override int GetOrdinal(string name)
override long GetInt64(int ordinal)
override DataTable GetSchemaTable()
DataTableReader(DataTable[] dataTables)
DataRowCollection Rows
Definition DataTable.cs:701
DataColumnCollection Columns
Definition DataTable.cs:327
static Exception InvalidCurrentRowInDataTableReader()
static Exception DataTableReaderArgumentIsEmpty()
static Exception ArgumentOutOfRange(string paramName)
static Exception EmptyDataTableReader(string tableName)
static Exception InvalidDataTableReader(string tableName)
static Exception ColumnNotInTheTable(string column, string table)
static Exception DataTableReaderSchemaIsInvalid(string tableName)
static Exception TraceExceptionWithoutRethrow(Exception e)
static Exception ArgumentNull(string paramName)
static CultureInfo InvariantCulture
static byte Min(byte val1, byte val2)
Definition Math.cs:912