Mysql
 sql >> Database >  >> RDS >> Mysql

Command.Parameters[@name].Value Sintassi corretta

Ok, quindi ho funzionato. Il problema principale era che questo doveva confrontare null con null , tuttavia un int non può essere null poiché è un tipo di valore.

Quindi ho dovuto apportare alcune modifiche al mio codice e l'ho fatto funzionare con la soluzione alternativa

int? AreaCode = null;

Questo mi ha permesso di cambiare il mio codice:

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

Per tutti coloro che non sono a conoscenza di cosa sta succedendo qui:

L'operatore ? dà a un tipo di valore la possibilità di non avere alcun valore , quindi può =null .

cioè.

int n = 0;
int? n = null;

bool b = false;
bool? b = null;