Пример #1
0
        /// <summary>Получает набор свойств MgPropertyCollection из текущей записи _reader в соответствии со списком _listed_prop_defs</summary>
        /// <param name="_reader"></param>
        /// <param name="_listed_prop_defs"></param>
        /// <returns></returns>
        internal static MgPropertyCollection GetPropertiesFromReader(MgFeatureReader _reader, MgPropertyDefinitionCollection _listed_prop_defs)
        {
            MgPropertyCollection result_props = new MgPropertyCollection();

            MgPropertyDefinitionCollection reader_prop_defs = _reader.GetClassDefinition().GetProperties();

            foreach (MgPropertyDefinition curr_prop_def in _listed_prop_defs)
            {
                if (!reader_prop_defs.Contains(curr_prop_def.Name) || _reader.IsNull(curr_prop_def.Name))
                {
                    continue;
                }

                int property_type = _reader.GetPropertyType(curr_prop_def.Name);
                if (property_type == MgPropertyType.Blob)
                {
                    result_props.Add(
                        new MgBlobProperty(curr_prop_def.Name, _reader.GetBLOB(curr_prop_def.Name))
                        );
                }
                else if (property_type == MgPropertyType.Boolean)
                {
                    result_props.Add(
                        new MgBooleanProperty(curr_prop_def.Name, _reader.GetBoolean(curr_prop_def.Name))
                        );
                }
                else if (property_type == MgPropertyType.Byte)
                {
                    result_props.Add(
                        new MgByteProperty(curr_prop_def.Name, _reader.GetByte(curr_prop_def.Name))
                        );
                }
                else if (property_type == MgPropertyType.Clob)
                {
                    result_props.Add(
                        new MgClobProperty(curr_prop_def.Name, _reader.GetCLOB(curr_prop_def.Name))
                        );
                }
                else if (property_type == MgPropertyType.DateTime)
                {
                    result_props.Add(
                        new MgDateTimeProperty(curr_prop_def.Name, _reader.GetDateTime(curr_prop_def.Name))
                        );
                }
                else if (property_type == MgPropertyType.Double)
                {
                    result_props.Add(
                        new MgDoubleProperty(curr_prop_def.Name, _reader.GetDouble(curr_prop_def.Name))
                        );
                }
                else if (property_type == MgPropertyType.Feature)
                {
                    result_props.Add(
                        new MgFeatureProperty(curr_prop_def.Name, _reader.GetFeatureObject(curr_prop_def.Name))
                        );
                }
                else if (property_type == MgPropertyType.Geometry)
                {
                    result_props.Add(
                        new MgGeometryProperty(curr_prop_def.Name, _reader.GetGeometry(curr_prop_def.Name))
                        );
                }
                else if (property_type == MgPropertyType.Int16)
                {
                    result_props.Add(
                        new MgInt16Property(curr_prop_def.Name, _reader.GetInt16(curr_prop_def.Name))
                        );
                }
                else if (property_type == MgPropertyType.Int32)
                {
                    result_props.Add(
                        new MgInt32Property(curr_prop_def.Name, _reader.GetInt32(curr_prop_def.Name))
                        );
                }
                else if (property_type == MgPropertyType.Int64)
                {
                    result_props.Add(
                        new MgInt64Property(curr_prop_def.Name, _reader.GetInt64(curr_prop_def.Name))
                        );
                }
                else if (property_type == MgPropertyType.Raster)
                {
                    result_props.Add(
                        new MgRasterProperty(curr_prop_def.Name, _reader.GetRaster(curr_prop_def.Name))
                        );
                }
                else if (property_type == MgPropertyType.Single)
                {
                    result_props.Add(
                        new MgSingleProperty(curr_prop_def.Name, _reader.GetSingle(curr_prop_def.Name))
                        );
                }
                else if (property_type == MgPropertyType.String)
                {
                    result_props.Add(
                        new MgStringProperty(curr_prop_def.Name, _reader.GetString(curr_prop_def.Name))
                        );
                }
            }              //foreach

            return(result_props);
        }
Пример #2
0
 //---------------------------------------------------------------------------------------
 //
 //        ���ܣ�δ֪��ѯ����е��������ݵ����͵Ĵ������
 //
 //
 //         ���ߣ�
 //
 //         ���ڣ� 2007.5.23
 //        
 //         �޸���ʷ����
 //        
 //---------------------------------------------------------------------------------------
 public void GetPropertyValue(MgFeatureReader featureReader, int propertyType, string propertyName)
 {
     switch (propertyType )
        {
            case MgPropertyType.Null:
                break;
            case MgPropertyType.Boolean:
                bool val1 = featureReader.GetBoolean(propertyName);
                break;
            case MgPropertyType.Byte:
                Byte val2 = featureReader.GetByte(propertyName);
                break;
            case MgPropertyType.DateTime:
                MgDateTime val3 = featureReader.GetDateTime(propertyName);
                break;
            case MgPropertyType.Single:
                float val4 = featureReader.GetSingle(propertyName);
                break;
            case MgPropertyType.Double:
                double val5 = featureReader.GetDouble(propertyName);
                break;
            case MgPropertyType.Int16:
                Int16 val6 = featureReader.GetInt16(propertyName);
                break;
            case MgPropertyType.Int32:
                Int32 val7 = featureReader.GetInt32(propertyName);
                break;
            case MgPropertyType.Int64:
                Int64 val8 = featureReader.GetInt64(propertyName);
                break;
            case MgPropertyType.String:
                string val9 = featureReader.GetString(propertyName);
                break;
            case MgPropertyType.Blob:
                string val10 = propertyName + " ��Blob����";
                break;
            case MgPropertyType.Clob:
                string val11 = propertyName + " ��Clob����";
                break;
            case MgPropertyType.Feature:
                MgFeatureReader val12 = featureReader.GetFeatureObject(propertyName);
                break;
            case MgPropertyType.Geometry:
                MgByteReader va13l = featureReader.GetGeometry(propertyName);
                MgAgfReaderWriter agfReader = new MgAgfReaderWriter();
                MgGeometry districtGeometry = agfReader.Read(va13l);
                break;
            case MgPropertyType.Raster:
                MgRaster val14 = featureReader.GetRaster(propertyName) ;
                break;
            default:
                string val13 =  "δ֪����";
                break;
        }
 }