Re: how to parse an Enum Structure in vb.net
- From: "Phill W." <p-.-a-.-w-a-r-d@xxxxxxxxxxxxxxxxxxx>
- Date: Wed, 05 Jul 2006 15:27:37 +0100
giannik wrote:
I have an Enum
Public Enum MyEnum
EnumVal1=0
EnumVal2=1
EnumVal2=2
end enum
I save in an access database this enum value as an integer (0=EnumVal1, 1=EnumVal2, 2=EnumVal)
Save the Enum /names/ not their numeric values.
OK, you only have three here, but what if you had a long list of these and then, Lord forbid, you added another one "in the middle"? Much of your existing data (in Access) would be wrong.
Use a String column in the database and use <value>.ToString() to get the enum "name" to save.
When retreving this enum from the database how do I ensure that the correct value is passed to my object
When reading the property back, parse the string value (from Access) back into the Enum Type, as in
MyObject.MyEnum = CType( dr.Item( "EV" ), MyEnum )
By way of a rather silly example:
Class MyClass
Enum Month
January = 1
February
March
. . .
dr.Item( "Month" ) = Month.December.ToString() ' actually "December"
Now, just for the sake of argument, let's create a new month, called Filibuster, between February and March.
Class MyClass
Enum Month
January = 1
February
Filibuster
March
. . .
Oh No! I hear you cry. You'll have to bulk update all the records in Access to increment their month numbers!
Nope. Holding the Enum /names/ means you don't have to. Assuming you already have a row in there for December:
? dr.Item( "Month" ).GetType().ToString()
[System.]String
? dr.Item( "Month" ).ToString()
"December"
? CType( dr.Item( "Month" ), Month ).GetType().ToString()
[MyClass.]Month
? CType( dr.Item( "Month" ), Month )
December
So far, so good, but here's the clincher ...
? CInt( dr.Item( "Month" ), Month )
13
.... even if it was 12 when you saved that record into Access!
HTH,
Phill W.
.
- Follow-Ups:
- Re: how to parse an Enum Structure in vb.net
- From: Dennis
- Re: how to parse an Enum Structure in vb.net
- References:
- how to parse an Enum Structure in vb.net
- From: giannik
- how to parse an Enum Structure in vb.net
- Prev by Date: Re: How to use DataGridComboColumnStyle
- Next by Date: Re: Get object from name
- Previous by thread: Re: how to parse an Enum Structure in vb.net
- Next by thread: Re: how to parse an Enum Structure in vb.net
- Index(es):
Relevant Pages
|