|
我有一个FlagsAttribute像这样按位枚举-
" I# l; j7 U+ s1 c6 ^8 j! @[FlagsAttribute]public enum MyEnum{ None = 0, First = 1, Second = 2, Third = 4, Five = 8, Six = 16, Seven = 32, Eight = 64, Nine = 128}现在,在C#我把这个值存储在一个名字里MyProperty这个属性在保存后写入我的属性SQL在数据库的整数列中。First,Second,Five从代码中选择,然后在数据库中再存为11。
, e9 S, G% f* \* U4 `" f我知道我可以从数据库获中获得值int值类型转换为MyEnum,它将为我提供这些值。然而,我希望在某些存储过程中SQL在这些存储过程中,显然不能将数据转换为Enum所以,有没有办法让我知道每一个价值观?
$ c% {4 ?8 n8 @; d例如,如果存储11,我可以通过任何方式获得它 "1 2 8"
. X. j( {3 J7 D+ D # M) Z) a, W8 h8 Z, S
解决方案:
& d1 A% u2 ^# W/ Q2 g! K7 k$ G 这可能有助于你入门:: Z, ?/ F4 j* Q; g) |
Select 11 & 1 As 'First' ,11 & 2 As 'Second' ,11 & 4 As 'Third' ,11 & 8 As 'Five' ,11 & 16 As 'Six' ,11 & 32 As 'Seven' ,11 & 64 As 'Eight' ,11 & 128 As 'Nine';您的储值在哪里?
7 S* y- e2 T- ?5 V" h4 D这将返回设定的每个值的非零值(即Select 11 & 1 As 'First'返回1,Select 11 & 2 As'Second'返回图2,Select 11 & 4 As 'Third'返回0等。 |
|