Ada tiga kemungkinan skenario untuk penyisipan seperti itu:
- Penyisipan berhasil.
- Anda mendapatkan pengecualian.
- Anda memiliki pemicu yang menggantikan penyisipan dengan beberapa tindakan lain.
Saya rasa Anda tidak memiliki pemicu, dan karena Anda tidak mendapatkan catatan di tabel, harus ada pengecualian.
Apakah Anda memiliki kode yang menangkap pengecualian di level lain? Itu akan menjelaskan mengapa Anda tidak melihatnya, dan itu juga akan membuat koneksi database tidak tertutup, yang akan menjelaskan mengapa Anda mengalami masalah saat menghubungkan ke database setelahnya.
Menggunakan using
blok untuk koneksi database akan menutupnya dengan benar bahkan jika ada kesalahan dalam kode.
Anda menggunakan kueri berparameter, tetapi saya tidak dapat melihat bahwa Anda menambahkan parameter ke objek perintah di mana pun dalam kode. Itu akan menjadi seperti:
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;