Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Insérer une instruction dans la base de données SQL Server

Il existe trois scénarios possibles pour une insertion comme celle-ci :

  1. L'insertion a réussi.
  2. Vous obtenez une exception.
  3. Vous avez un déclencheur qui remplace l'insertion par une autre action.

Je suppose que vous n'avez pas de déclencheur, et comme vous n'obtenez pas d'enregistrement dans la table, il doit y avoir une exception.

Avez-vous un code qui intercepte l'exception à un autre niveau ? Cela expliquerait pourquoi vous ne le voyez pas, et cela laisserait également la connexion à la base de données non fermée, ce qui expliquerait pourquoi vous avez des problèmes pour vous connecter à la base de données par la suite.

Utiliser un using bloc pour la connexion à la base de données le fermerait correctement même s'il y a une erreur dans le code.

Vous utilisez une requête paramétrée, mais je ne vois pas que vous ajoutez les paramètres à l'objet de commande n'importe où dans le code. Ce serait quelque chose comme :

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;