• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1033
  • Last Modified:

Adding new row to bound datatable

Hi,

I have a datatable which is bound to a combobox and several textboxes.
The combobox is used to browse through the items, and the textboxes to modify/view the data.
This all works fine.

However, when adding a new row to the table, the combobox shows this new row, yet the bindingcontext does not change position when I select the value in the combobox. Therefore I cannot modify the new row added.

Any help would be apprciated,

Thanks.
The binding for example;
 
            medicinesTableAdapter1.Fill(mediupDataSet1.medicines);
 
            cboxSelect.DataSource = mediupDataSet1;
            cboxSelect.DisplayMember = "Medicines.english_name";
            cboxSelect.ValueMember = "Medicines.ID";
 
            tboxID.DataBindings.Add("Text", mediupDataSet1, "Medicines.ID");
            tboxActiveComponents.DataBindings.Add("Text", mediupDataSet1, "Medicines.active_component");
 
Adding a new row:
           
 this.BindingContext[mediupDataSet1, "Medicines"].EndCurrentEdit();
            DataRow _dr = mediupDataSet1.medicines.NewRow();
            _dr.BeginEdit();
            _dr["ID"] = (uint)(mediupDataSet1.medicines.Compute("Max(id)", "")) + 1;
            _dr["hebrew_name"] = "êèÕäÔ ×ÓéÔ";
            _dr.EndEdit();
            mediupDataSet1.medicines.Rows.Add(_dr);

Open in new window

0
Nemesis_0001
Asked:
Nemesis_0001
  • 2
1 Solution
 
Wardy_01Commented:
rebind the grid to the newly modified datatable.
then set the selectedindex to the newly created row.
0
 
Nemesis_0001Author Commented:
There is no grid, only a combobox and some textboxes.
0
 
Wardy_01Commented:
sorry my bad ... read it wrong.

If you design this as per the Microsoft recommended approach you should have all your databinding code in a databind method.

That means you do things in this order ...

1. load
2. databind
3  edit
4  databind
5  finish

you have to be careful with the order of events though, i used to get tripped up all the time with this stuff. Put a breakpoint on your value setting statements to make sure the new values are being correctly picked up.

And of course don't forget to call databind when you're done ... i can't see that anywhere.
Databind should update your binding context assuming your underlying dataset has been modified correctly.

Migth be worth checking the dataset after you modify it to make sure the data has been correctly committed.
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now