Utilisation de SqlDBType.Decimal dans l'instruction C # préparée
suis à l'aide d'une requête Préparée en C#.
SqlCommand inscommand = new SqlCommand(supInsert, connection);
inscommand.Parameters.Add("@ordQty", SqlDbType.Decimal,18);
inscommand.Prepare();
u = inscommand.ExecuteNonQuery();
Le code ci-dessus jette ci-dessous Exception:
SqlCommand.Préparer méthode nécessite des paramètres de type 'Virgule' ont explicitement définir la Précision et l'Échelle.
EDIT: Comment faire pour éviter cette Exception
source d'informationauteur Suave Nti
Vous devez vous connecter pour publier un commentaire.
La suivante serait de définir un nombre Décimal avec une Précision de 18 ans et à l'Échelle 8 (Décimal (18,8))
Que l'exception signalée, vous devez définir explicitement le
SqlParameter.Precision
etSqlParameter.Scale
propriétés afin d'utiliser ledecimal
type de paramètre.Disons que votre SQL champ est de type
decimal(18,8)
. Le moyen de le faire en direct est d'utiliser des accolades initialisation pour votre SqlParameter tout en ajoutant à laSqlParameterCollection
comme suit:Vous pouvez également faire
pour ajouter de la valeur, si vous en avez besoin. Vous pourriez même faire
si vous préférez. Accolade de l'initialisation est vraiment puissant.
Note de côté: je me rends compte que c'est une vieille question, mais je pense que cette forme est beaucoup plus lisible que la création de l'objet tout en ajoutant à la liste, puis réglage de l'échelle et de précision. Pour La Postérité! (puisque c'est un haut-liste de résultats de recherche google)
essayez ceci:
Vous devez les définir explicitement la précision et l'échelle pour ce paramètre.