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
J'ajoute 2 espions : un sur reader["PAYS_DEPLOYE"] et un sur (object)true
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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'ai
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))
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 reader["PAYS_DEPLOYE"] | true | object {bool} (object)true | true | object {bool}
Partager