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

Command.Parameters[@name].Value Corriger la syntaxe

Ok donc j'ai eu ce travail. Le problème principal était que cela devait comparer null avec null , mais un int ne peut pas être null car il s'agit d'un type valeur.

J'ai donc dû faire quelques ajustements avec mon code et j'ai obtenu que cela fonctionne avec la solution de contournement

int? AreaCode = null;

Cela m'a permis de changer mon code :

mySqlCommand.Parameters["@AreaCode"].Value = (PModel.AreaCode.HasValue ? PModel.AreaCode.Value : object)DBNull.Value );

Pour tous ceux qui ne sont pas au courant de ce qui se passe ici :

L'opérateur ? donne à un type de valeur la possibilité de n'avoir aucune valeur , il peut donc =null .

c'est-à-dire.

int n = 0;
int? n = null;

bool b = false;
bool? b = null;