private Model.Field GetField(string connectionString, string tbName, DataRow r) { Model.Field model = new Model.Field(); model.AllowNull = SchemaHelper.GetBool(r["IS_NULLABLE"]); model.DefaultValue = SchemaHelper.GetString(r["COLUMN_DEFAULT"]); model.FieldDescn = SchemaHelper.GetString(r["DESCRIPTION"]); model.FieldName = SchemaHelper.GetString(r["COLUMN_NAME"]); model.FieldNumber = SchemaHelper.GetInt(r["ORDINAL_POSITION"]); model.FieldSize = SchemaHelper.GetInt(r["CHARACTER_OCTET_LENGTH"]); model.FieldType = SchemaHelper.GetString(r["DATA_TYPE"]); model.FieldLength = SchemaHelper.GetInt(r["CHARACTER_MAXIMUM_LENGTH"]); model.IsId = SchemaHelper.GetInt(r["COLUMN_FLAGS"]) == 90 && SchemaHelper.GetInt(r["DATA_TYPE"]) == 3; DataTable dtPrimanyKey = GetDbSchema(connectionString, OleDbSchemaGuid.Primary_Keys, null); foreach (DataRow rp in dtPrimanyKey.Rows) { if (rp[2].ToString() == tbName && rp[3].ToString() == model.FieldName) { model.IsKey = true; } } return(model); }