当前位置: 首页>>代码示例>>C#>>正文


C# PropertyCollection.Add方法代码示例

本文整理汇总了C#中System.Data.PropertyCollection.Add方法的典型用法代码示例。如果您正苦于以下问题:C# PropertyCollection.Add方法的具体用法?C# PropertyCollection.Add怎么用?C# PropertyCollection.Add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Data.PropertyCollection的用法示例。


在下文中一共展示了PropertyCollection.Add方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Clone

 public override object Clone() {
     // override Clone so that returned object is an
     // instance of PropertyCollection instead of Hashtable
     PropertyCollection clone = new PropertyCollection();
     foreach (DictionaryEntry pair in this) {
         clone.Add(pair.Key, pair.Value);
     }
     return clone;
 }
开发者ID:uQr,项目名称:referencesource,代码行数:9,代码来源:PropertyCollection.cs

示例2: GetUserDefinedSounds

        /// <summary>
        /// Retrieves the user-defined sounds from the registry
        /// </summary>
        private PropertyCollection GetUserDefinedSounds()
        {
            string rootKey = "AppEvents\\Schemes\\Apps\\.Default";
            PropertyCollection coll = new PropertyCollection();

            try
            {
                // open root key
                key1 = Registry.CurrentUser.OpenSubKey(rootKey, false);

                // go through each subkey
                foreach (string subKey in key1.GetSubKeyNames())
                {
                    // open subkey
                    key2 = key1.OpenSubKey(subKey + "\\.Current", false);

                    // get filename, if any
                    if (key2 != null)
                        if (key2.GetValue(null).ToString().Length > 0)
                            coll.Add(subKey, key2.GetValue(null).ToString());
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, ex.Message, "Yikes!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                // close keys
                key1.Close();
                key2.Close();
            }

            return coll;
        }
开发者ID:ugenlik,项目名称:CdpLayer,代码行数:38,代码来源:Form1.cs

示例3: PanelFields

        private List<Field> PanelFields(int idPanel)
        {
            DataTable tbl = fetchAll("SELECT * FROM fields JOIN field_types USING(id_field) WHERE id_panel = ", idPanel);
            List<Field> res = new List<Field>();
            foreach(DataRow row in tbl.Rows){

                int typeId = (int) row["id_type"];
                int fieldId = (int)row["id_field"];

                PropertyCollection properties = new PropertyCollection();
                PropertyCollection rules = new PropertyCollection();
                PropertyCollection controlOptions = new PropertyCollection();
                DataTable propsTab = fetchAll("SELECT name, val, concerns FROM fields_meta WHERE id_field = ", fieldId);
                foreach(DataRow propRow in propsTab.Rows)
                    switch((string)propRow["concerns"]){
                        case "view":
                            properties.Add(propRow["name"], propRow["val"]);
                            break;
                        case "validation":
                            rules.Add(propRow["name"], propRow["val"]);
                            break;
                        case "controls":
                            controlOptions.Add(propRow["name"], propRow["val"]);
                            break;
                        default:
                            throw new Exception("Cannot handle metadata about " + propRow["concerns"].ToString() + " (yet).");
                    }

                properties.Add("caption", row["caption"] as string);

                string typeName = row["type_name"] as string;
                if(!controlOptions.ContainsKey("isFK") && !controlOptions.ContainsKey("isM2NMapping")){
                    res.Add(new Field(fieldId, (string)row["column_name"], typeId, (string)row["type_name"], idPanel, properties, rules));
                    continue;   // just a standard field
                }

                //  FK or M2NMapping
                string myTable = fetchSingle("SELECT table_name FORM panels WHERE id_panel = ", idPanel) as string;
                string myColumn = row["column_name"] as string;
                string refTable = controlOptions[CC.FIELD_REF_TABLE] as string;
                string refColumn = controlOptions[CC.FIELD_REF_COLUMN] as string;
                string displayColumn = controlOptions[CC.FIELD_DISPLAY_COLUMN] as string;

                if(controlOptions.ContainsKey("isFK")){     // foreign key
                    FKMySql fk = new FKMySql(myTable, myColumn, refTable, refColumn, displayColumn);
                    res.Add(new FKField(fieldId, myColumn, typeId, typeName, idPanel, fk, properties, rules));
                }

                //  M2NMapping
                string mapTable = controlOptions[CC.FIELD_MAP_TABLE] as string;
                string mapMyColumn = controlOptions[CC.FIELD_MAP_MY_COLUMN] as string;
                string mapRefColumn = controlOptions[CC.FIELD_REF_COLUMN] as string;

                M2NMappingMySql mapping = new M2NMappingMySql(myTable, myColumn, refTable, refColumn, mapTable, displayColumn, mapMyColumn, mapRefColumn);
                res.Add(new M2NMappingField(fieldId, myColumn, typeId, typeName, idPanel, mapping, properties, rules));
            }

            return res;
        }
开发者ID:rjankovic,项目名称:deskmin,代码行数:59,代码来源:SystemMySql.cs

示例4: getPanel

        public IPanel getPanel(int panelId, bool recursive = true, IPanel parent = null)
        {
            DataRow panelRow = fetch("SELECT * FROM panels "
            + " JOIN panel_types USING(id_panel) WHERE id_panel = ", panelId);

            List<Field> fields = PanelFields(panelId);
            List<string> PKColNames = new List<string>(((string)panelRow["pk_column_names"]).Split(','));

            PropertyCollection viewProperties = new PropertyCollection();
            PropertyCollection controlProperties = new PropertyCollection();
            // !! attrs to handle global validation rules needed?

            DataTable propsTab = fetchAll("SELECT name, val, concerns FROM panels_meta WHERE id_panel = ", panelId);

            foreach(DataRow row in propsTab.Rows)
                switch(row["concerns"] as string){
                    case CC.ATTR_VIEW:
                        viewProperties.Add(row["name"], row["val"]);
                        break;
                    case CC.ATTR_CONTROLS:
                        controlProperties.Add(row["name"], row["val"]);
                        break;
                    default:
                        throw new Exception("Cannot handle panel properties concerning "
                            + row["concerns"] as string + " (yet). ");
                }

            //determine the controls
            List<Control> controls = new List<Control>();       // TODO (probably don`t) rewrite into enum over PanelTypes
            string pTypeStr = (string)panelRow["type_name"];
            switch(pTypeStr){
                case Constants.PANEL_EDITABLE:      // standard edit window
                case Constants.PANEL_NAVTABLE:
                    foreach(UserAction action in Enum.GetValues(typeof(UserAction))){
                        if((action == UserAction.View && pTypeStr == Constants.PANEL_EDITABLE)
                            || (action == UserAction.Update && pTypeStr == Constants.PANEL_NAVTABLE
                        ) ) continue;
                        string actionName = action.ToString();
                        string controlCaption = (string)controlProperties[actionName];      //!!
                        if(controlCaption != CC.CONTROL_DISABLED &&
                                (int)controlProperties[actionName + "ALR"] <= CE.user.rights){  // Authorization Level Required
                            controls.Add(new Control(controlCaption, action));
                        }
                    }
                    break;
                case CC.PANEL_MONITOR:   // just display, no controls
                    break;
                case CC.PANEL_MENUDROP:  // the contol is the whole panel, do not load data
                case CC.PANEL_MENUTABS:       // will be a field type
                case CC.PANEL_NAVTREE:
                    string localActionName = UserAction.View.ToString();

                    //  duplicite information about controls - in controlProperties and as Control objects. For Proposal phase use only

                    if((string)controlProperties[localActionName] != CC.CONTROL_DISABLED &&     // there is sth to show and user can see it
                        (int)controlProperties[localActionName + "ALR"] <= (int)CE.user.rights){
                        DataTable controlTabStruct = new DataTable();
                        List<string> displayColumns = new List<string>(     // table structure for summary
                            (viewProperties[CC.PANEL_DISPLAY_COLUMN_ORDER] as string).Split(','));      // already in database - only first few columns
                        string panelTypeName = (string)panelRow["type_name"];

                        if (panelTypeName == CC.PANEL_MENUTABS)
                        {  // will take data from children (captions as panel Names)
                            controlTabStruct.Columns.Add("childPanelName");
                            controls.Add(new Control(controlTabStruct, "childPanelName", UserAction.View));
                        }
                        else
                        {       // gotta be navTree or menuDrop => treeControl
                            if (PKColNames.Count > 1)    //  must have single PKcol
                                throw new Exception("Tree hierarchies must have single-column primay key");
                            controlTabStruct.Columns.Add(PKColNames[0]);
                            controlTabStruct.Columns.Add(controlProperties[CC.CONTROL_HIERARCHY_SELF_FK_COL] as string);
                            controlTabStruct.Columns.Add(displayColumns[0]);
                            controls.Add(new TreeControl(
                                controlTabStruct, PKColNames[0], controlProperties[CC.CONTROL_HIERARCHY_SELF_FK_COL] as string,
                                displayColumns[0], UserAction.View));
                        }
                    }
                    break;
            }

            List<IField> fieldsAsInterface = new List<IField>(fields);
            List<IControl> controlsAsInterface = new List<IControl>(controls);

            Panel res =  new Panel(panelRow["table_name"] as string, panelId,
                (int)panelRow["id_type"], panelRow["type_name"] as string, null,
                fieldsAsInterface, controlsAsInterface, PKColNames, null, viewProperties, controlProperties, parent);
            if(recursive) res.AddChildren(getPanelChildren(res, true));
            return res;
        }
开发者ID:rjankovic,项目名称:deskmin,代码行数:90,代码来源:SystemMySql.cs

示例5: deserializeExtendedProperties

 private void deserializeExtendedProperties(PropertyCollection properties)
 {
     object[] keys = reader.ReadOptimizedObjectArray();
     object[] values = reader.ReadOptimizedObjectArray();
     for(int i = 0; i < keys.Length; i++)
     {
         properties.Add(keys[i], values[i]);
     }
 }
开发者ID:randomyed,项目名称:SobekCM-Web-Application,代码行数:9,代码来源:AdoNetHelper.cs

示例6: Message

        /// <summary>
        /// Constructor: used for deserialization
        /// </summary>
        /// <param name="info">Standard <c>SerializationInfo</c> object</param>
        /// <param name="ctxt">Standard <c>StreamingContext</c> object</param>
        public Message(SerializationInfo info, StreamingContext ctxt)
        {
            bool b_dest_addr = info.GetBoolean("b_dest_addr");
            if (b_dest_addr)
                dest_addr = (Address)info.GetValue("dest_addr",typeof(object));

            bool b_src_addr = info.GetBoolean("b_src_addr");
            if (b_src_addr)
                src_addr = (Address)info.GetValue("src_addr",typeof(object));

            int bufferLength = info.GetInt32("bufferLength");

            if (bufferLength > 0)
            {
                buf = new byte[bufferLength];
                for(int i = 0; i< bufferLength;i++)
                {
                    buf[i] = info.GetByte(i.ToString());
                }
            }

            String strHeaders = info.GetString("strHeaders");

            headers = new PropertyCollection();

            if (String.Compare(strHeaders,"NULL")!=0)
            {
                String[] headerArray = strHeaders.Split(':');
                for(int j = 0;j<headerArray.Length;j++)
                {
                    headers.Add(headerArray[j],info.GetValue(headerArray[j],typeof(object)));
                }
            }
        }
开发者ID:curasystems,项目名称:externals,代码行数:39,代码来源:Message.cs


注:本文中的System.Data.PropertyCollection.Add方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。