Duplicaté possible: strong>
quel type de type MySQL à utiliser pour stocker des valeurs booléennes? p> blockQuote>Je suis un programmeur .NET et utilisez la base de données MySQL pour la première fois de ma vie. P>
Je voulais stocker la valeur booléenne, MySQL a
bit code>, mais la conversion .NET de ce type de données est
uint64 code>. p>.
Il y a un autre type de données
tinyint (1) code>, dont l'équivalent .net est <-code> system.booleren code> qui servira mon objectif. p>
Mais pourquoi vais-je utiliser
tinyint (1) code> (qui peut stocker la valeur comme 123, 22) au lieu de
bit code> et il prendra plus d'espace que
bit code> aussi (je suppose) strong>? Il peut être légal de l'utiliser mais je ne pense pas qu'il soit étique. P>
Quelqu'un peut-il aider et clarifier mon doute? P>
3 Réponses :
Selon le manuel MySQL, vous pouvez utiliser Bool et Boolean qui sont au moment des alias de Tinyint (1): P>
Référence: Quelles données MySQL Type à utiliser pour stocker des valeurs booléennes P>
similaires au type de données de bits MS SQL forts>: p> xxx pré> blockQuote>
Si vous êtes intéressé, les exigences de stockage pour différents types sont situées Ici . P> bit code> ne fonctionne pas comme vous le pensez, il est généralement utilisé pour stocker bitfields et
bit (m) code> prend environ
(m + 7) / 8 code> (arithmétique entier) octets de stockage. Utilisation du bit
(1) code> prend toute une octet de toute façon, la même chose que
tinyint code> ne vous inquiétez pas. P>
mySQL a bool et booléen, mais ils sont synonymes de Tinyint (1). Une valeur de zéro est considérée comme fausse. Les valeurs non nulles sont considérées comme vraies. Je suppose que quelqu'un à MySQL pensa à ce sujet et décidé que Tinyint (1) est la voie préférée d'aller. J'ai toujours utilisé cela moi-même. P>
Il y a d'autres informations dans cette question similaire: Quelle est la différence entre Bit et Tinyint dans MySQL? P>
Qu'entendez-vous par «la conversion» .net '? Comment convertissez-vous vos valeurs de DB en types .NET? Si vous convertissez manuellement, vous ne pouvez pas utiliser: convert.toboolooan (lecteur [«Nom de colonne»]) Ceci devrait convertir la valeur du bit en un problème Boolean.
Si vous prenez des digne d'information et que vous faites la conversion ci-dessus, cela fonctionne bien. Mais si vous poursuivez votre datatable et essayez de faire la conversion, cela ne fonctionne pas.