2011-05-31 90 views

回答

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()); 
+0

謝謝,這將處理核心案件。剩下的我需要根據轉換的方向來處理。 – 2011-05-31 23:54:53

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和結構化需要特殊處理,反向應該更簡單。

相關問題