Pro takovou vložku existují tři možné scénáře:
- Vložení bylo úspěšné.
- Dostanete výjimku.
- Máte spouštěč, který nahradí vložení nějakou jinou akcí.
Domnívám se, že nemáte spouštěč, a protože nemáte záznam v tabulce, musí existovat výjimka.
Máte nějaký kód, který zachytí výjimku na jakékoli jiné úrovni? To by vysvětlovalo, proč to nevidíte, a také by to ponechalo připojení k databázi neuzavřené, což by vysvětlovalo, proč máte následně problémy s připojením k databázi.
Pomocí using
blok pro připojení k databázi by jej správně uzavřel, i když je v kódu chyba.
Používáte parametrizovaný dotaz, ale nikde v kódu nevidím, že přidáváte parametry do objektu příkazu. To by bylo něco jako:
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;