Er zijn drie mogelijke scenario's voor zo'n insert:
- Het invoegen lukt.
- Je krijgt een uitzondering.
- Je hebt een trigger die de insert vervangt door een andere actie.
Ik denk dat je geen trigger hebt, en omdat je geen record in de tabel krijgt, moet er een uitzondering zijn.
Heb je een code die de uitzondering op een ander niveau opvangt? Dat zou verklaren waarom je het niet ziet, en het zou ook de databaseverbinding niet gesloten laten, wat zou verklaren waarom je daarna problemen hebt om verbinding te maken met de database.
Een using
. gebruiken blok voor de databaseverbinding zou het correct sluiten, zelfs als er een fout in de code zit.
U gebruikt een geparametriseerde query, maar ik kan niet zien dat u de parameters ergens in de code aan het opdrachtobject toevoegt. Dat zou zoiets zijn als:
cmd.Parameters.Add("Price", SqlDbType.Decimal).Value = price;
cmd.Parameters.Add("User", SqlDbType.NChar, 20).Value = user;
cmd.Parameters.Add("Time", SqlDbType.NChar, 15).Value = time;
cmd.Parameters.Add("Customer", SqlDbType.NChar, 10).Value = customer;
cmd.Parameters.Add("Discount", SqlDbType.Decimal).Value = discount;
cmd.Parameters.Add("FullPrice", SqlDbType.Decimal).Value = fullPrice;