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

◆ GetSchemaTableFromDataTable()

static DataTable System.Data.DataTableReader.GetSchemaTableFromDataTable ( DataTable table)
inlinestaticpackage

Definition at line 687 of file DataTableReader.cs.

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));
717 DataColumn column13 = new DataColumn(SchemaTableOptionalColumn.ColumnMapping, typeof(MappingType));
718 DataColumn dataColumn11 = new DataColumn(SchemaTableOptionalColumn.BaseTableNamespace, typeof(string));
719 DataColumn column14 = new DataColumn(SchemaTableOptionalColumn.BaseColumnNamespace, 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 }
static CultureInfo InvariantCulture

References System.Data.DataColumnCollection.Add(), System.Data.Common.SchemaTableColumn.AllowDBNull, System.Data.DataColumn.AllowDBNull, System.Data.ExceptionBuilder.ArgumentNull(), System.Data.DataColumn.AutoIncrement, System.Data.Common.SchemaTableOptionalColumn.AutoIncrementSeed, System.Data.DataColumn.AutoIncrementSeed, System.Data.Common.SchemaTableOptionalColumn.AutoIncrementStep, System.Data.DataColumn.AutoIncrementStep, System.Data.Common.SchemaTableOptionalColumn.BaseCatalogName, System.Data.Common.SchemaTableColumn.BaseColumnName, System.Data.Common.SchemaTableOptionalColumn.BaseColumnNamespace, System.Data.Common.SchemaTableColumn.BaseSchemaName, System.Data.Common.SchemaTableColumn.BaseTableName, System.Data.Common.SchemaTableOptionalColumn.BaseTableNamespace, System.Data.Common.SchemaTableOptionalColumn.ColumnMapping, System.Data.DataColumn.ColumnMapping, System.Data.Common.SchemaTableColumn.ColumnName, System.Data.DataColumn.ColumnName, System.Data.Common.SchemaTableColumn.ColumnOrdinal, System.Data.DataTable.Columns, System.Data.Common.SchemaTableColumn.ColumnSize, System.Data.DataColumn.DataExpression, System.Data.DataTable.DataSet, System.Data.DataSet.DataSetName, System.Data.Common.SchemaTableColumn.DataType, System.Data.DataColumn.DataType, System.Data.Common.SchemaTableOptionalColumn.DefaultValue, System.Data.DataColumn.DefaultValue, System.Data.Common.SchemaTableOptionalColumn.Expression, System.Data.DataColumn.Expression, System.Data.DataExpression.GetDependency(), System.Globalization.CultureInfo.InvariantCulture, System.Data.Common.SchemaTableOptionalColumn.IsAutoIncrement, System.Data.Common.SchemaTableColumn.IsKey, System.Data.Common.SchemaTableColumn.IsLong, System.Data.Common.SchemaTableOptionalColumn.IsReadOnly, System.Data.Common.SchemaTableOptionalColumn.IsRowVersion, System.Data.Common.SchemaTableColumn.IsUnique, System.Data.DataColumn.MaxLength, System.Data.DataColumn.Namespace, System.Data.DataTable.Namespace, System.Data.Common.SchemaTableColumn.NumericPrecision, System.Data.Common.SchemaTableColumn.NumericScale, System.Data.DataColumn.Ordinal, System.Data.Common.SchemaTableColumn.ProviderType, System.Data.DataColumn.ReadOnly, System.Data.DataTable.TableName, System.Data.DataColumn.Unique, and System.DBNull.Value.

Referenced by System.Data.DataTableReader.GetSchemaTable().