public static ITableStructure GetTableStructure(this DataColumnCollection columns, string name) { TableStructure res = new TableStructure(); //res.FilledMembers |= TableStructureMembers.ColumnNames | TableStructureMembers.ColumnTypes; foreach (DataColumn col in columns.SortedByKey <DataColumn, int>(col => col.Ordinal)) { var c = res.AddColumn(col.ColumnName, TypeTool.GetDatAdminType(col.DataType)); c.IsNullable = col.AllowDBNull; c.DefaultValue = SqlExpression.ParseDefaultValue(col.DefaultValue.SafeToString(), null); } return(res); }
public static DbTypeBase ReaderDataType(DataRow row) { try { string tp = row["DataTypeName"].SafeToString(); if (tp == "xml") { return(new DbTypeXml()); } int size = row.SafeString("ColumnSize").SafeIntParse(); if (tp == "varchar") { return new DbTypeString { Length = size } } ; if (tp == "nvarchar") { return new DbTypeString { Length = size, IsUnicode = true } } ; if (tp == "text") { return(new DbTypeText()); } if (tp == "ntext") { return new DbTypeText { IsUnicode = true } } ; } catch { } return(TypeTool.GetDatAdminType((Type)row["DataType"])); }