I'm sure the changes are being made directly to the data table, I've checked many times, inserted new records through my program and also directly into the database, both methods insert into the table fine. However the listbox is still only displaying products from when it was first bound. I bound using the inbuilt method where you click the listbox and select datasource etc display member valuemember...when I manually attached the datasource with my own code it did display correctly however the other fields dependant on the listbox selected value got messed up and clicking any other listbox items made all entries disappear, so I just reverted back to the inbuilt binding as to not mess up things further.