Menu1 | |----Submenu1 | |----Command1 | |----Command2 |----Submenu2 | |----Command1 | |----Command2 |----Submenu3
        internal static void PopulateDataSubMenu(ICommandBar pMenu, string entitySetName)
        {
            try
            { 
                OleDbConnection dataConnection = new OleDbConnection();
                dataConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                                                  "Data Source=\\\\ad.sfwmd.gov\\dfsroot\\data\\err_gis\\applications\\dev\\mdb\\rimGISLibDatabase\\mdb\\GISLIBFeaterClassName1.mdb";
                dataConnection.Open();
                OleDbCommand dataCommand = new OleDbCommand();
                dataCommand.Connection = dataConnection;
                dataCommand.CommandText = "SELECT distinct(Order1ClassName) " +
                                          "FROM qryorder1 " +
                                          "WHERE Order1SetName = '" + entitySetName + "'";
                OleDbDataReader dataReader = dataCommand.ExecuteReader();
                object idx = 0;
                int counter = 0;
                while (dataReader.Read())
                {
                    string className = dataReader.GetString(0);
                    idx = counter;
                    CmdTest2 cmdTest3 = new CmdTest2(entitySetName + " - " + className, entitySetName, className);
                    UID uid = new UIDClass();
                    uid.Value = cmdTest3;    <---CRASH HERE       
                    pMenu.Add(uid, ref idx);
                    counter++;
                }
                dataReader.Close();
                dataConnection.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }hi,
you must pass the command name or UID value to UID.value.
example:
uid.Value = "esriEditor.SaveEditsCommand";
or
uid.Value = "{B479F48A-199D-11D1-9646-0000F8037368}";
** you must replace B479F48A-199D-11D1-9646-0000F8037368 by your GUID command value
Vincent
string className = dataReader.GetString(0); idx = counter; CmdTest2 cmdTest3 = new CmdTest2(entitySetName + " - " + className, entitySetName, className); UID uid = new UID(); uid.Value = "RegGSS.cmdTest3"; pMenu.Add(uid, ref idx); counter++;
                    string className = dataReader.GetString(0);
                    idx = counter;
                    CmdTest2 cmdTest3 = new CmdTest2(entitySetName + " - " + className, entitySetName, className);
                    UID uid = new UID();
                    uid.Value = "{adc85ec2-c1c8-48ce-a975-1de2f0b393ff}";
                    pMenu.Add(uid, ref idx);
                    counter++;         ICommandBar pSetEditMenu = pDataEditorMenu.CreateMenu("SetEditLayer", ref idx);
                    ICommandItem pSetEditItem = pSetEditMenu as ICommandItem;
                    pSetEditItem.Caption = "Set Edit Layer";
                    idx = 0;
                    pSetEditMenu.Add(MakeUID("RegGSS.Commands.CmdSetEditLayerScratchLine"), ref idx);
                    idx = 1;
                    pSetEditMenu.Add(MakeUID("RegGSS.Commands.CmdSetEditLayerScratchPoly"), ref idx);
        internal static UID MakeUID(string id)
        {
            try
            {
                UID uid = new UIDClass();
                uid.Value = id;
                return uid;
            }
            catch (Exception ex)
            {
                ClsLogErrors.LogError(ex.StackTrace, ex.Message, "MakeUID", null);
                MessageBox.Show("An error has occured." + "\r\n" + "The GIS group has been notified of this problem.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return null;
            }
					
				
			
			
				
			
			
				
			
			
			
			
			
			
		