Use TextBox, MonthCalendar, NumberUpDown and other similar controls to collect the values and then add them to a ListView control. Each item will be a row in the ListView control. Provide the capability for the user to click on a row and edit the values or delete the row. When the transaction is complete traverse the ListView control items from 0 to (<controlname>.Items.Count - 1) to insert into your database. Be sure to use BeginTransaction, Commit, Rollback so that all of the inserts that are executed to do the transaction are treated as one logical transaction.
Here is a
video that demonstrates a POS application written in C# that gathers the data and then adds it as a new item into a ListView control. When the transaction is completed, the rows of the ListView control are used to compose multiple SQL Insert statements to insert the data into the database.