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

Command.Parameters[@name].Value Korrekt syntaks

Ok så jeg fik det til at virke. Hovedproblemet var, at dette skulle sammenligne null med null , dog en int kan ikke være null da det er en værditype.

Så jeg var nødt til at lave nogle justeringer med min kode, og jeg fik det til at fungere med løsningen

int? AreaCode = null;

Dette gav mig mulighed for at ændre min kode:

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

Til alle dem, der ikke er klar over, hvad der sker her:

Operatøren ? giver en værditype evnen til at ikke have nogen værdi , så det kan =null .

dvs.

int n = 0;
int? n = null;

bool b = false;
bool? b = null;



  1. MySQL og PDO:Kunne PDO::lastInsertId teoretisk fejle?

  2. SQL Server Internals:Plan Caching Pt. II – Genkompilering af planer

  3. Formler til at beregne geografisk nærhed

  4. ikke-understøttet scanning, lagring af driver.Værdi skriv []uint8 i type *time.Time