答案 0 :(得分:3)
如果名字匹配,可能是这样吗?
System.Data.SqlDbType otherEnumTypeValue = System.Data.SqlDbType.Xml;
Microsoft.SqlServer.Management.Smo.SqlDataTypeconverted =
(Microsoft.SqlServer.Management.Smo.SqlDataType)Enum.Parse(typeof(Microsoft.SqlServer.Management.Smo.SqlDataType), otherEnumTypeValue.ToString());
答案 1 :(得分:1)
使用Bala R的枚举解析代码以及针对不支持的转换的特殊情况,从SqlDataType转换为SqlDbType。
private static SqlDbType ConvertSqlTypeEnum(SqlDataType sqlDataType)
{
SqlDbType sqlDbType;
switch (sqlDataType)
{
case SqlDataType.UserDefinedType:
sqlDbType = System.Data.SqlDbType.Udt;
break;
case SqlDataType.None:
case SqlDataType.NVarCharMax:
case SqlDataType.UserDefinedDataType:
case SqlDataType.VarBinaryMax:
case SqlDataType.VarCharMax:
case SqlDataType.SysName:
case SqlDataType.Numeric:
case SqlDataType.UserDefinedTableType:
case SqlDataType.HierarchyId:
case SqlDataType.Geometry:
case SqlDataType.Geography:
throw new NotSupportedException("Unable to convert to SqlDbType:" + sqlDataType);
default:
sqlDbType = (SqlDbType)Enum.Parse(typeof(SqlDbType), sqlDataType.ToString());
break;
}
return sqlDbType;
}
反过来应该更简单,只有Udt和Structured需要特殊处理。