asp.net - 将字符串转换为 SqlDbType

标签 asp.net sql vb.net

我正在尝试将字符串值转换为 SqlDbType。我的代码能够将“Text”转换为 SqlDbType.Text 而不会出现任何错误,但是当我尝试将“bit”转换为 SqlDbType.Bit 时,我收到以下错误: “未找到请求的值‘位’。”

尝试将“int”转换为 SqlDbType.Int 错误消息: 时会发生同样的事情“未找到请求的值‘int’。”

为什么这适用于“文本”而不​​适用于“位”或“整数”?

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

sdtype = DirectCast([Enum].Parse(GetType(SqlDbType), MyType), SqlDbType)

最佳答案

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

您需要使用 Enum.Parse 的重载:

SqlDbType type = (SqlDbType) Enum.Parse( typeof(SqlDbType) , "bit" , true ) ;

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

关于asp.net - 将字符串转换为 SqlDbType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4821569/

相关文章:

c# - 在 ASP.NET 中 ConfigureAwait(false) 的行为是什么?

c# - 需要在网页上的两点之间画一条线

c# - 从 .Net Framework 4.5 升级到 4.6.1 后 Nuget 重新定位

sql - 根据用户名获取 2 列的全名

php - 获取一张表的所有数据,而另一张表为空且也应用where子句

mysql - 无法通过本地网络连接到WAMP服务器

python - 单击按钮在 VB.net 中运行 python 脚本

c# - 使用 C# 自动超链接 URL 和电子邮件,同时保留定制标签

sql - SQL Server 函数中的递归游标不起作用

vb.net - 将csv文件读入access数据库