I apologize for the confusion.
I have an access database that is connected to the project through a typed dataset. This has a binding source and table adapter for each table in the database. The columns are set as a collection, some of the field pulled directly from the main table, others are drop down boxes with a datasource from a different table. The display member is the data held in field two of that different table, but the value member is the ID field of that table. Below is an example since I am not making this clear:
Table1:
Field1(ID)
Field2(Foreign Key from Table2)
Table2:
Field1(ID)
Field2(String)
So when you are looking at the datagridview, each record has Table1Field1 in the first column and a dropdown box of Table2Field2 values. You select one and it in turn updates Table1 with Table2Field1. A simple relational database is all.
The access database specifies Table1Field2 as not required. So you can create a new record using the datagridview with only the Table1Field1 specified and this works fine. The issue comes when you select something from the dropdown box and then decide later that you wanted to leave it blank. You cannot delete it because the only options are the list from Table2.
I am fully aware that this problem may be a result of poor design, but I do not know better and I am not sure what code to show you as much of the datagridview was created using the designer. Is there some specific part of the code that I should show?
I understand the piece about the front end holding the values until the database is updated, I thought this is what I was doing with the tableadapter.update function?
Thanks for the help, let me know how I can clarify more.