Example #1
0
        internal static void LoadTableColumns(Table table, DataBaseColumnInformation dbci)
        {
            ColumnType columnType = MapColumnType(Type.GetTypeCode(dbci.dataType));
            if (table.Columns.GetIndex(dbci.columnName) == -1)
            {
                Column column = Column.GetColumnFromType(dbci.columnName, table, columnType);

                column.m_Table = table;
                column.IsCreatedByWebGrid = true;
                table.Columns.Add(column);
            }
            else if (table.Columns[dbci.columnName].ColumnType == ColumnType.Unknown)
                table.Columns[dbci.columnName].ColumnType = columnType;

            if (columnType == ColumnType.File || columnType == ColumnType.Image)
                table.Columns[dbci.columnName].IsBlob = true;
            else if ((table.Columns[dbci.columnName].ColumnType == ColumnType.File ||
                      table.Columns[dbci.columnName].ColumnType == ColumnType.Image) &&
                     string.IsNullOrEmpty(table.Columns[dbci.columnName].FileNameColumn))
                table.Columns[dbci.columnName].FileNameColumn = table.Columns[dbci.columnName].ColumnId;
            table.Columns[dbci.columnName].LoadDataSourceInformation(dbci);
        }
Example #2
0
        internal static void LoadColumnSettings(DataTable columnSettings, Table table)
        {
            if (columnSettings == null)
                return;
            if (!"SchemaTable".Equals(columnSettings.TableName))
                columnSettings = columnSettings.CreateDataReader().GetSchemaTable();

            int displayindex = 10;

            foreach (DataRow row in columnSettings.Rows)
            {
                DataBaseColumnInformation dbci = new DataBaseColumnInformation
                                                     {
                                                         dataType = row["DataType"] as Type,
                                                         canNull = (bool) row["AllowDBNull"],
                                                         displayindex = displayindex
                                                     };

                displayindex += 10;

                dbci.columnName = row["ColumnName"] as string;
                if (dbci.dataType == typeof (string))
                    dbci.maxSize = (int?) row["ColumnSize"];
                dbci.title = dbci.columnName;
                dbci.defaultDataSourceId = row["BaseTableName"] as string;
                //   dbci.defaultValue = datacolumn.DefaultValue;
                if (columnSettings.Columns.Contains("IsKey") && (bool) row["IsKey"])
                {
                    dbci.uniquevalue = true;
                    dbci.primaryKey = true;
                }
                if ((columnSettings.Columns.Contains("IsIdentity") && (bool) row["IsIdentity"])
                    || (columnSettings.Columns.Contains("IsAutoIncrement") && (bool) row["IsAutoIncrement"]))
                {
                    dbci.readOnly = true;
                    dbci.identity = true;
                }
                else
                    dbci.readOnly = (bool) row["IsReadOnly"];

                LoadTableColumns(table, dbci);
            }
            if (displayindex > 10)
                table.m_LoadedTableSchema = true;
        }