Maison >développement back-end >C++ >Comment gérer les valeurs nulles lors de l'attribution à un SqlParameter en C# ?
Attribution d'une valeur nulle à SqlParameter en C#
Le code fourni a rencontré une erreur : "Impossible de convertir implicitement de DBNull en int." Cette erreur provient d'un opérateur conditionnel qui tente d'attribuer une valeur int ou une valeur de type DBNull à la propriété Value d'un SqlParameter. Malheureusement, ces types de données sont incompatibles et l'opérateur ne peut pas déterminer le type de retour approprié.
La solution de contournement consiste à convertir la valeur AgeItem.AgeIndex en type d'objet ou à utiliser l'opérateur de fusion nul (??). La conversion de AgeItem.AgeIndex en objet de type garantit qu'il peut être affecté à la propriété Value (la propriété Value nécessite un objet). Alternativement, une approche plus propre peut être obtenue en utilisant l'opérateur ?? :
<code class="language-csharp">SqlParameter[] parameters = new SqlParameter[1]; SqlParameter planIndexParameter = new SqlParameter("@AgeIndex", SqlDbType.Int); planIndexParameter.Value = (object)AgeItem.AgeIndex ?? DBNull.Value; parameters[0] = planIndexParameter;</code>
Dans ce cas, ?? évalue AgeItem.AgeIndex et, s'il est nul, attribue la valeur du paramètre à DBNull.Value. En utilisant la conversion de type ou l'opérateur de fusion nul, nous pouvons résoudre l'erreur ci-dessus et attribuer la valeur requise à la propriété Value de SqlParameter.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!