Има три възможни сценария за вмъкване като това:
- Вмъкването е успешно.
- Получавате изключение.
- Имате тригер, който замества вмъкването с някакво друго действие.
Предполагам, че нямате тригер и тъй като не получавате запис в таблицата, трябва да има изключение.
Имате ли код, който улавя изключението на друго ниво? Това би обяснило защо не го виждате и също така ще остави връзката с базата данни незатворена, което би обяснило защо имате проблеми при свързването с базата данни след това.
Използване на using
блок за връзката с базата данни ще я затвори правилно, дори ако има грешка в кода.
Използвате параметризирана заявка, но не виждам да добавяте параметрите към командния обект навсякъде в кода. Това би било нещо като:
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;