将String转换为SqlDbType

crj*_*unk 4 sql vb.net asp.net

我试图将字符串值转换为SqlDbType.我的代码能够将"Text"转换为SqlDbType.Text而没有任何错误,但是当我尝试将"bit"转换为SqlDbType.Bit时,我收到以下错误:"找不到请求值'bit'."

尝试将"int"转换为SqlDbType.Int时会发生同样的错误消息:"找不到请求的值'int'."

为什么这适用于"文本"而不​​是"位"或"int"?

Dim MyType as String = "bit"
Dim sdtype As SqlDbType

sdtype = DirectCast([Enum].Parse(GetType(SqlDbType), MyType), SqlDbType)
Run Code Online (Sandbox Code Playgroud)

Nic*_*rey 16

因为枚举值是SqlDbType.Bit,而不是SqlDbType.bit.Enum.Parse()对其输入是区分大小写的WRT.

你需要使用Enum.Parse的这个重载:

SqlDbType type = (SqlDbType) Enum.Parse( typeof(SqlDbType) , "bit" , true ) ;
Run Code Online (Sandbox Code Playgroud)

第三个参数指示在解析字符串中的枚举值时是否应忽略(true)或不(false)大小写.