Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. Add Item In Combobox

Add Item In Combobox

Scheduled Pinned Locked Moved C#
csharphelpsalestutorial
12 Posts 2 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J jigneshDPatel

    I am working in vb.net with c# - 2008 Hear Some Problem to fill Combobox using recursion in Duplication Problem in my combobox please help me my table and coding like this In table using Self join *************** Table****************** Id Parent_Id Name 1 Null Sales 2 1 Item1 3 1 Item2 4 2 Item3 5 3 Item4 6 4 Item5 7 Null Purchase 8 7 Item1 9 7 Item1 My table data are look like that 1) in my application i want to fill only the Sales and that's child to releted with them in combobox 2) in my application i use to recursion that's work but that show many time the purticulr some items 3) if any budy have the solution of my problem please help me and if possible to give me code releted with otherwise give some example releted with it please

    W Offline
    W Offline
    Wendelius
    wrote on last edited by
    #2

    So the data is duplicating in the combobox? Could you post the code you have currently. Without it, it's quite hard to say where the problem lies.

    The need to optimize rises from a bad design.My articles[^]

    J 1 Reply Last reply
    0
    • W Wendelius

      So the data is duplicating in the combobox? Could you post the code you have currently. Without it, it's quite hard to say where the problem lies.

      The need to optimize rises from a bad design.My articles[^]

      J Offline
      J Offline
      jigneshDPatel
      wrote on last edited by
      #3
      1. public void FillCombo() { DataTable dt = new DataTable(); StrSql = "select Level_Id,Level_Name from UserLevel"; StrSql += " where Level_Id = '2'"; dt = qry.FillDataSet(StrSql).Tables[0]; if (dt.Rows.Count > 0) { if (ChildExistOrNotInCombo(2) == true) { AddChildCombo(2, ref dt); } } this.cmbParentLevel.DataSource = dt; this.cmbParentLevel.DisplayMember = "Level_Name"; this.cmbParentLevel.ValueMember = "Level_Id"; } 2) private void AddChildCombo(int objid,ref DataTable Table) { DataTable Objdt = new DataTable(); int Objval = 0; StrSql = "select Level_Id,Level_Name from UserLevel"; StrSql += " where Parent_LevelId = " + objid + ""; Objdt = qry.FillDataSet(StrSql).Tables[0]; if (Objdt.Rows.Count > 0) { for ( int i = 0; i <= Objdt.Rows.Count - 1; i++) { Table.ImportRow(Objdt.Rows[i]); Objval = Convert.ToInt32(Objdt.Rows[i].ItemArray[0]); if (ChildExistOrNotInCombo(Objval) == true) { AddChildCombo(Objval, ref Objdt); } } } } 3) private bool ChildExistOrNotInCombo(int ObjParentId) { StrSql = "select * from userlevel where Parent_LevelId = " + ObjParentId + ""; if (qry.CheckExist(StrSql) == true) { return true; } else { return false; } } in my database this item has only 12 record but in this that retrun the 77 record in some are wrong but i dont't know please help me on this problem as soon as possible
      W 1 Reply Last reply
      0
      • J jigneshDPatel
        1. public void FillCombo() { DataTable dt = new DataTable(); StrSql = "select Level_Id,Level_Name from UserLevel"; StrSql += " where Level_Id = '2'"; dt = qry.FillDataSet(StrSql).Tables[0]; if (dt.Rows.Count > 0) { if (ChildExistOrNotInCombo(2) == true) { AddChildCombo(2, ref dt); } } this.cmbParentLevel.DataSource = dt; this.cmbParentLevel.DisplayMember = "Level_Name"; this.cmbParentLevel.ValueMember = "Level_Id"; } 2) private void AddChildCombo(int objid,ref DataTable Table) { DataTable Objdt = new DataTable(); int Objval = 0; StrSql = "select Level_Id,Level_Name from UserLevel"; StrSql += " where Parent_LevelId = " + objid + ""; Objdt = qry.FillDataSet(StrSql).Tables[0]; if (Objdt.Rows.Count > 0) { for ( int i = 0; i <= Objdt.Rows.Count - 1; i++) { Table.ImportRow(Objdt.Rows[i]); Objval = Convert.ToInt32(Objdt.Rows[i].ItemArray[0]); if (ChildExistOrNotInCombo(Objval) == true) { AddChildCombo(Objval, ref Objdt); } } } } 3) private bool ChildExistOrNotInCombo(int ObjParentId) { StrSql = "select * from userlevel where Parent_LevelId = " + ObjParentId + ""; if (qry.CheckExist(StrSql) == true) { return true; } else { return false; } } in my database this item has only 12 record but in this that retrun the 77 record in some are wrong but i dont't know please help me on this problem as soon as possible
        W Offline
        W Offline
        Wendelius
        wrote on last edited by
        #4

        The first thing is that why are you checking from database if item exists in combo in ChildExistOrNotInCombo? Shouldn't you be checking if the datatable you're filling contains the item? Also it seems that you check from database if the row has children? I think it's unnecessary since you could simply call recursion. If there are no children, nothing's added. You don't check how many rows your query returns in FillCombo. You use it like it returns 1, but if it returns several rows, I think you'll have extra data in the datatable. And when you do the recursion, you select based on the row level_ID, is this correct? Shouldn't you select using Parent_ID like Parent_ID = ID (based on the data you posted in the first post)? So is Level_id same as ID in the first post and Parent_LevelId is the same as Parent_Id in the first post. So basically it could be something like:

        public void FillCombo()
        {
        DataTable dt = new DataTable();
        StrSql = "select Level_Id,Level_Name from UserLevel";
        StrSql += " where Level_Id = '2'";
        dt = qry.FillDataSet(StrSql).Tables[0];
        if (dt.Rows.Count > 0)
        {
        MessageBox.Show("More than one row");
        }
        AddChildCombo(2, ref dt);
        this.cmbParentLevel.DataSource = dt;
        this.cmbParentLevel.DisplayMember = "Level_Name";
        this.cmbParentLevel.ValueMember = "Level_Id";
        }

        private void AddChildCombo(int objid,ref DataTable Table)
        {
        DataTable Objdt;
        int Objval;
        StrSql = "select Level_Id,Level_Name from UserLevel";
        StrSql += " where Parent_LevelId = " + objid + "";
        Objdt = qry.FillDataSet(StrSql).Tables[0];
        for ( int i = 0; i <= Objdt.Rows.Count - 1; i++)
        {
        Table.ImportRow(Objdt.Rows[i]);
        Objval = Convert.ToInt32(Objdt.Rows[i].ItemArray[0]);
        AddChildCombo(Objval, ref Objdt);
        }
        }

        The need to optimize rises from a bad design.My articles[^]

        J 1 Reply Last reply
        0
        • W Wendelius

          The first thing is that why are you checking from database if item exists in combo in ChildExistOrNotInCombo? Shouldn't you be checking if the datatable you're filling contains the item? Also it seems that you check from database if the row has children? I think it's unnecessary since you could simply call recursion. If there are no children, nothing's added. You don't check how many rows your query returns in FillCombo. You use it like it returns 1, but if it returns several rows, I think you'll have extra data in the datatable. And when you do the recursion, you select based on the row level_ID, is this correct? Shouldn't you select using Parent_ID like Parent_ID = ID (based on the data you posted in the first post)? So is Level_id same as ID in the first post and Parent_LevelId is the same as Parent_Id in the first post. So basically it could be something like:

          public void FillCombo()
          {
          DataTable dt = new DataTable();
          StrSql = "select Level_Id,Level_Name from UserLevel";
          StrSql += " where Level_Id = '2'";
          dt = qry.FillDataSet(StrSql).Tables[0];
          if (dt.Rows.Count > 0)
          {
          MessageBox.Show("More than one row");
          }
          AddChildCombo(2, ref dt);
          this.cmbParentLevel.DataSource = dt;
          this.cmbParentLevel.DisplayMember = "Level_Name";
          this.cmbParentLevel.ValueMember = "Level_Id";
          }

          private void AddChildCombo(int objid,ref DataTable Table)
          {
          DataTable Objdt;
          int Objval;
          StrSql = "select Level_Id,Level_Name from UserLevel";
          StrSql += " where Parent_LevelId = " + objid + "";
          Objdt = qry.FillDataSet(StrSql).Tables[0];
          for ( int i = 0; i <= Objdt.Rows.Count - 1; i++)
          {
          Table.ImportRow(Objdt.Rows[i]);
          Objval = Convert.ToInt32(Objdt.Rows[i].ItemArray[0]);
          AddChildCombo(Objval, ref Objdt);
          }
          }

          The need to optimize rises from a bad design.My articles[^]

          J Offline
          J Offline
          jigneshDPatel
          wrote on last edited by
          #5
          1. But sir in my database there is no extra data my database data is show below Hear is my Database 2 NULL Account 3 2 Perment 4 2 Tempray 11 NULL Sales 12 11 tttttt 13 11 pppp 14 12 qqqqq 15 13 jjjjj 16 15 asd 17 16 sasda 20 17 fffff 23 NULL Purchase 28 23 Pur1 30 20 qqqqqqq 31 14 aaaa 32 15 bbbbbbbb 33 32 iiiiiii 34 3 Company Employees 35 4 Contract Base Employee 2) i am trying as u say but that's are return the same thing as they return early 3) in my application i want to just add Parent data with the all child in my combobox if there are any other way to fill the combobox so please tell me 4) Example : The Sales is Parent Node and the that releted all child are fill in to the combobox with the Parnet Node 5) Hear the NULL is define that that is Parent Node.
          W 1 Reply Last reply
          0
          • J jigneshDPatel
            1. But sir in my database there is no extra data my database data is show below Hear is my Database 2 NULL Account 3 2 Perment 4 2 Tempray 11 NULL Sales 12 11 tttttt 13 11 pppp 14 12 qqqqq 15 13 jjjjj 16 15 asd 17 16 sasda 20 17 fffff 23 NULL Purchase 28 23 Pur1 30 20 qqqqqqq 31 14 aaaa 32 15 bbbbbbbb 33 32 iiiiiii 34 3 Company Employees 35 4 Contract Base Employee 2) i am trying as u say but that's are return the same thing as they return early 3) in my application i want to just add Parent data with the all child in my combobox if there are any other way to fill the combobox so please tell me 4) Example : The Sales is Parent Node and the that releted all child are fill in to the combobox with the Parnet Node 5) Hear the NULL is define that that is Parent Node.
            W Offline
            W Offline
            Wendelius
            wrote on last edited by
            #6

            I didn't say that the problem is in the data in the database, but how you use it. One problem is that I don't know what your method qry.FillDataSet does. Perhaps it adds rows to an existing datatable? In that case you would have too much data. Lets make it a bit simpler (I corrected few typos I made earlier):

            Data
            Level_Id ParentId Level_Name

            2 NULL Account
            3 2 Perment
            4 2 Tempray
            11 NULL Sales
            12 11 tttttt
            13 11 pppp
            14 12 qqqqq
            15 13 jjjjj
            16 15 asd
            17 16 sasda
            20 17 fffff
            23 NULL Purchase
            28 23 Pur1
            30 20 qqqqqqq
            31 14 aaaa
            32 15 bbbbbbbb
            33 32 iiiiiii
            34 3 Company Employees
            35 4 Contract Base Employee

            public void FillCombo()
            {
            DataTable dt = new DataTable();
            string sql = "select Level_Id, Level_Name from UserLevel"
            + " where Level_Name = 'Sales'";
            dt = qry.FillDataSet(sql).Tables[0];
            if (dt.Rows.Count > 1)
            {
            MessageBox.Show("Problem: More than one row");
            }
            AddChildCombo((int)dt.Rows[0]["Level_Id"], ref dt);
            this.cmbParentLevel.DataSource = dt;
            this.cmbParentLevel.DisplayMember = "Level_Name";
            this.cmbParentLevel.ValueMember = "Level_Id";
            }
            private void AddChildCombo(int parentLevelId,ref DataTable Table)
            {
            DataTable childTable;
            string sql = "select Level_Id,Level_Name from UserLevel"
            + " where Parent_LevelId = " + parentLevelId + "";
            childTable = qry.FillDataSet(sql).Tables[0];
            -- Check with debugger that rows are correctly
            for ( int i = 0; i <= childTable.Rows.Count - 1; i++)
            {
            Table.ImportRow(childTable.Rows[i]);
            AddChildCombo((int)childTable.Rows[i]["Level_Id"], ref Table);
            }
            }

            Now use the debugger to see if row amounts and the data is correct in the FillCombo and also in the recursion.

            The need to optimize rises from a bad design.My articles[^]

            J 1 Reply Last reply
            0
            • W Wendelius

              I didn't say that the problem is in the data in the database, but how you use it. One problem is that I don't know what your method qry.FillDataSet does. Perhaps it adds rows to an existing datatable? In that case you would have too much data. Lets make it a bit simpler (I corrected few typos I made earlier):

              Data
              Level_Id ParentId Level_Name

              2 NULL Account
              3 2 Perment
              4 2 Tempray
              11 NULL Sales
              12 11 tttttt
              13 11 pppp
              14 12 qqqqq
              15 13 jjjjj
              16 15 asd
              17 16 sasda
              20 17 fffff
              23 NULL Purchase
              28 23 Pur1
              30 20 qqqqqqq
              31 14 aaaa
              32 15 bbbbbbbb
              33 32 iiiiiii
              34 3 Company Employees
              35 4 Contract Base Employee

              public void FillCombo()
              {
              DataTable dt = new DataTable();
              string sql = "select Level_Id, Level_Name from UserLevel"
              + " where Level_Name = 'Sales'";
              dt = qry.FillDataSet(sql).Tables[0];
              if (dt.Rows.Count > 1)
              {
              MessageBox.Show("Problem: More than one row");
              }
              AddChildCombo((int)dt.Rows[0]["Level_Id"], ref dt);
              this.cmbParentLevel.DataSource = dt;
              this.cmbParentLevel.DisplayMember = "Level_Name";
              this.cmbParentLevel.ValueMember = "Level_Id";
              }
              private void AddChildCombo(int parentLevelId,ref DataTable Table)
              {
              DataTable childTable;
              string sql = "select Level_Id,Level_Name from UserLevel"
              + " where Parent_LevelId = " + parentLevelId + "";
              childTable = qry.FillDataSet(sql).Tables[0];
              -- Check with debugger that rows are correctly
              for ( int i = 0; i <= childTable.Rows.Count - 1; i++)
              {
              Table.ImportRow(childTable.Rows[i]);
              AddChildCombo((int)childTable.Rows[i]["Level_Id"], ref Table);
              }
              }

              Now use the debugger to see if row amounts and the data is correct in the FillCombo and also in the recursion.

              The need to optimize rises from a bad design.My articles[^]

              J Offline
              J Offline
              jigneshDPatel
              wrote on last edited by
              #7

              Qry is a obj of my class FillDataSet is one Common Function that's only fill the dataset or datatabel In That the Data Will come is proper but Sir that Are Duplicate in to the combobox Just Example the 1) 'qqqqq' That's are show in combo ManyTime that's way the some other data are also come the many times Hear Sir Any Other Way to Fill the Combo My one Friend Sid that that's to fillcombo with use Recursion is not give Proper Result and also say that that it is not proper way. So if U know to the Other Way to Fill Combo so Please Tell Me That's Request Please

              W 1 Reply Last reply
              0
              • J jigneshDPatel

                Qry is a obj of my class FillDataSet is one Common Function that's only fill the dataset or datatabel In That the Data Will come is proper but Sir that Are Duplicate in to the combobox Just Example the 1) 'qqqqq' That's are show in combo ManyTime that's way the some other data are also come the many times Hear Sir Any Other Way to Fill the Combo My one Friend Sid that that's to fillcombo with use Recursion is not give Proper Result and also say that that it is not proper way. So if U know to the Other Way to Fill Combo so Please Tell Me That's Request Please

                W Offline
                W Offline
                Wendelius
                wrote on last edited by
                #8

                aajignesh wrote:

                In That the Data Will come is proper but Sir that Are Duplicate in to the combobox

                Maybe a dumb question, but do you clear the combobox at any time? If not, you should add Clear to the FillCombo. Also you you may want to clear bindings. Like:

                public void FillCombo()
                {
                this.cmbParentLevel.DataSource = null;
                DataTable dt;
                strinf sql = "select Level_Id, Level_Name from UserLevel"
                + " where Level_Name = 'Sales'";
                dt = qry.FillDataSet(sql).Tables[0];
                if (dt.Rows.Count > 1)
                {
                MessageBox.Show("Problem: More than one row");
                }
                AddChildCombo((int)dt.Rows[0]["Level_Id"], ref dt);
                this.cmbParentLevel.Items.Clear();
                this.cmbParentLevel.DataSource = dt;
                this.cmbParentLevel.DisplayMember = "Level_Name";
                this.cmbParentLevel.ValueMember = "Level_Id";
                }

                aajignesh wrote:

                My one Friend Sid that that's to fillcombo with use Recursion is not give Proper Result and also say that that it is not proper way.

                Recursion is just a technique to handle data which is in tree format. It can be used for many situations, like filling a combo. There's no reason why filling a combo with a recursion wouldn't work. The problem is in the implementation.

                aajignesh wrote:

                So if U know to the Other Way to Fill Combo so Please Tell Me That's Request Please

                This depends where the data is coming from. Are you querying for example SQL Server database?

                The need to optimize rises from a bad design.My articles[^]

                J 1 Reply Last reply
                0
                • W Wendelius

                  aajignesh wrote:

                  In That the Data Will come is proper but Sir that Are Duplicate in to the combobox

                  Maybe a dumb question, but do you clear the combobox at any time? If not, you should add Clear to the FillCombo. Also you you may want to clear bindings. Like:

                  public void FillCombo()
                  {
                  this.cmbParentLevel.DataSource = null;
                  DataTable dt;
                  strinf sql = "select Level_Id, Level_Name from UserLevel"
                  + " where Level_Name = 'Sales'";
                  dt = qry.FillDataSet(sql).Tables[0];
                  if (dt.Rows.Count > 1)
                  {
                  MessageBox.Show("Problem: More than one row");
                  }
                  AddChildCombo((int)dt.Rows[0]["Level_Id"], ref dt);
                  this.cmbParentLevel.Items.Clear();
                  this.cmbParentLevel.DataSource = dt;
                  this.cmbParentLevel.DisplayMember = "Level_Name";
                  this.cmbParentLevel.ValueMember = "Level_Id";
                  }

                  aajignesh wrote:

                  My one Friend Sid that that's to fillcombo with use Recursion is not give Proper Result and also say that that it is not proper way.

                  Recursion is just a technique to handle data which is in tree format. It can be used for many situations, like filling a combo. There's no reason why filling a combo with a recursion wouldn't work. The problem is in the implementation.

                  aajignesh wrote:

                  So if U know to the Other Way to Fill Combo so Please Tell Me That's Request Please

                  This depends where the data is coming from. Are you querying for example SQL Server database?

                  The need to optimize rises from a bad design.My articles[^]

                  J Offline
                  J Offline
                  jigneshDPatel
                  wrote on last edited by
                  #9

                  I am use FillCombo to Form Load Event to FillCombo Box Sir Hear Some Mistact Of my Coding But Hear I Dont't Find That. If Sir U Have Any Other Idea to FillCombo so Plese Tell Me Please

                  W 1 Reply Last reply
                  0
                  • J jigneshDPatel

                    I am use FillCombo to Form Load Event to FillCombo Box Sir Hear Some Mistact Of my Coding But Hear I Dont't Find That. If Sir U Have Any Other Idea to FillCombo so Plese Tell Me Please

                    W Offline
                    W Offline
                    Wendelius
                    wrote on last edited by
                    #10

                    aajignesh wrote:

                    If Sir U Have Any Other Idea to FillCombo so Plese Tell Me Please

                    As I said, it depends where the data is coming from. Is it coming from SQL Server 2005 database? If it is one possibility could be to use recursive CTE (Common Table Expression). However, I made a little sample on your data. Since I don't have your datasource I had to make it differently so the implementation is a bit different. Try this. As far as can see, it fills a combo named cmbTest as expected. If the result is what you want, modify it in little pieces to implement it the way that's suitable for you: Start in form load

                      private void Form2\_Load(object sender, EventArgs e) {
                         FillCombo();
                      }
                    

                    Method to always get the same data

                      private DataTable GetDataTable() {
                         DataTable data = new DataTable();
                    
                         data.Columns.Add("Id", typeof(int));
                         data.Columns.Add("ParentId", typeof(int));
                         data.Columns.Add("LevelName", typeof(string));
                    
                         data.Rows.Add(2, null, "Account");
                         data.Rows.Add(3, 2, "Perment");
                         data.Rows.Add(4, 2, "Tempray");
                         data.Rows.Add(11, null, "Sales");
                         data.Rows.Add(12, 11, "tttttt");
                         data.Rows.Add(13, 11, "pppp");
                         data.Rows.Add(14, 12, "qqqqq");
                         data.Rows.Add(15, 13, "jjjjj");
                         data.Rows.Add(16, 15, "asd");
                         data.Rows.Add(17, 16, "sasda");
                         data.Rows.Add(20, 17, "fffff");
                         data.Rows.Add(23, null, "Purchase");
                         data.Rows.Add(28, 23, "Pur1");
                         data.Rows.Add(30, 20, "qqqqqqq");
                         data.Rows.Add(31, 14, "aaaa");
                         data.Rows.Add(32, 15, "bbbbbbbb");
                         data.Rows.Add(33, 32, "iiiiiii");
                         data.Rows.Add(34, 3, "Company Employees");
                         data.Rows.Add(35, 4, "Contract Base Employee");
                    
                         return data;
                      }
                    

                    Main point for recursion

                      public void FillCombo() {
                         DataTable dt = GetDataTable().Clone();
                         DataRow startRow = GetDataTable().Select("LevelName = 'Sales'")\[0\];
                         AddChildren((int)startRow\["Id"\], ref dt);
                         this.cmbTest.DisplayMember = "LevelName";
                         this.cmbTest.ValueMember = "Id";
                         this.cmbTest.DataSource = dt;
                      }
                    

                    And the recursion

                      private void AddChildren(int parentId, ref DataTable TableToFill) {
                         DataRow\[\] children = GetDataTable().Select("ParentId = " + parentId.ToString());
                         for ( in
                    
                    J 1 Reply Last reply
                    0
                    • W Wendelius

                      aajignesh wrote:

                      If Sir U Have Any Other Idea to FillCombo so Plese Tell Me Please

                      As I said, it depends where the data is coming from. Is it coming from SQL Server 2005 database? If it is one possibility could be to use recursive CTE (Common Table Expression). However, I made a little sample on your data. Since I don't have your datasource I had to make it differently so the implementation is a bit different. Try this. As far as can see, it fills a combo named cmbTest as expected. If the result is what you want, modify it in little pieces to implement it the way that's suitable for you: Start in form load

                        private void Form2\_Load(object sender, EventArgs e) {
                           FillCombo();
                        }
                      

                      Method to always get the same data

                        private DataTable GetDataTable() {
                           DataTable data = new DataTable();
                      
                           data.Columns.Add("Id", typeof(int));
                           data.Columns.Add("ParentId", typeof(int));
                           data.Columns.Add("LevelName", typeof(string));
                      
                           data.Rows.Add(2, null, "Account");
                           data.Rows.Add(3, 2, "Perment");
                           data.Rows.Add(4, 2, "Tempray");
                           data.Rows.Add(11, null, "Sales");
                           data.Rows.Add(12, 11, "tttttt");
                           data.Rows.Add(13, 11, "pppp");
                           data.Rows.Add(14, 12, "qqqqq");
                           data.Rows.Add(15, 13, "jjjjj");
                           data.Rows.Add(16, 15, "asd");
                           data.Rows.Add(17, 16, "sasda");
                           data.Rows.Add(20, 17, "fffff");
                           data.Rows.Add(23, null, "Purchase");
                           data.Rows.Add(28, 23, "Pur1");
                           data.Rows.Add(30, 20, "qqqqqqq");
                           data.Rows.Add(31, 14, "aaaa");
                           data.Rows.Add(32, 15, "bbbbbbbb");
                           data.Rows.Add(33, 32, "iiiiiii");
                           data.Rows.Add(34, 3, "Company Employees");
                           data.Rows.Add(35, 4, "Contract Base Employee");
                      
                           return data;
                        }
                      

                      Main point for recursion

                        public void FillCombo() {
                           DataTable dt = GetDataTable().Clone();
                           DataRow startRow = GetDataTable().Select("LevelName = 'Sales'")\[0\];
                           AddChildren((int)startRow\["Id"\], ref dt);
                           this.cmbTest.DisplayMember = "LevelName";
                           this.cmbTest.ValueMember = "Id";
                           this.cmbTest.DataSource = dt;
                        }
                      

                      And the recursion

                        private void AddChildren(int parentId, ref DataTable TableToFill) {
                           DataRow\[\] children = GetDataTable().Select("ParentId = " + parentId.ToString());
                           for ( in
                      
                      J Offline
                      J Offline
                      jigneshDPatel
                      wrote on last edited by
                      #11

                      Thaks You .....

                      W 1 Reply Last reply
                      0
                      • J jigneshDPatel

                        Thaks You .....

                        W Offline
                        W Offline
                        Wendelius
                        wrote on last edited by
                        #12

                        You're welcome.

                        The need to optimize rises from a bad design.My articles[^]

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups