[2.0] Source BDD en BIT = 1, (object)true, comparaison = false.
Salut
Question concernant une comparaison.
J'ai une base de données SQL Server, avec une colonne PAYS_DEPLOYE de type BIT, Nullable
Du côté du code, je veux, si PAYS_DEPLOYE est inexistant, NULL ou 0, alors boolData = false, true si PAYS_DEPLOYE = 1
J'ai fais le code suivant
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| //...
bool boolData = false;
string SQL = "SELECT PAYS_DEPLOYE FROM REF_PAYS WHERE PAYS_ID = @paysId"
SqlCommand command = new SqlCommand(SQL, connexion);
command.Parameters.AddWithValue("@paysId", paysId);
SqlDataReader reader = command.ExecuteReader();
if (reader.Read())
boolData = (reader["PAYS_DEPLOYE"] == (object)true);
reader.Close();
//... |
J'ajoute 2 espions : un sur reader["PAYS_DEPLOYE"] et un sur (object)true
J'ai
Code:
1 2
| reader["PAYS_DEPLOYE"] | true | object {bool}
(object)true | true | object {bool} |
Ma question est : pourquoi (reader["PAYS_DEPLOYE"] == (object)true) = false ? la comparaison se fait par référence ? (ça me rapelle le LISP où (eq 1 1) est nil (càd false), mais (LEQ 1 1) est t (càd true))