Det finns tre möjliga scenarier för ett sådant inlägg:
- Infogningen lyckas.
- Du får ett undantag.
- Du har en utlösare som ersätter infogningen med någon annan åtgärd.
Jag antar att du inte har en trigger, och eftersom du inte får en post i tabellen måste det finnas ett undantag.
Har du någon kod som fångar undantaget på någon annan nivå? Det skulle förklara varför du inte ser det, och det skulle också lämna databasanslutningen ostängd, vilket skulle förklara varför du har problem med att ansluta till databasen efteråt.
Använda en using
block för databasanslutningen skulle stänga den ordentligt även om det finns ett fel i koden.
Du använder en parameteriserad fråga, men jag kan inte se att du lägger till parametrarna i kommandoobjektet någonstans i koden. Det skulle vara något i stil med:
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;