/// <summary>
        /// 根据传进来的参数类型返回object 类型 
        /// </summary>
        /// <param name="str_parametertype"></param>
        /// <returns></returns>
        private object get_ParameterType(string str_parametertype)
        {
            object o_parameter = new object();
            if (str_parametertype != string.Empty)
            {
                switch (str_parametertype)
                {
                    #region 根据属性的类型进行case 处理
                    case "DbType.Single":
                        o_parameter = DbType.Single;
                        break;
                    case "DbType.String":
                        o_parameter = DbType.String;
                        break;
                    case "Oracle.DataAccess.Client.OracleDbType.RefCursor":
                        o_parameter = Oracle.DataAccess.Client.OracleDbType.RefCursor;
                        break;
                    #endregion
                }
            }
            return o_parameter;
        }
我需要调用这个方法
oParam_array[i].DbType =(参数类型)get_ParameterType(entity_curr.P_TYPE);
应该怎么写比较好
谢谢啊

解决方案 »

  1.   


            private DbType get_ParameterType(string str_parametertype) 
            { 
                DbType o_parameter = 0; 
                if (str_parametertype != string.Empty) 
                { 
                    switch (str_parametertype) 
                    { 
                        #region 根据属性的类型进行case 处理 
                        case "DbType.Single": 
                            o_parameter = DbType.Single; 
                            break; 
                        case "DbType.String": 
                            o_parameter = DbType.String; 
                            break; 
                        case "Oracle.DataAccess.Client.OracleDbType.RefCursor": 
                            o_parameter = Oracle.DataAccess.Client.OracleDbType.RefCursor; 
                            break; 
                        #endregion 
                    } 
                } 
                return o_parameter; 
            } 調用的時候oParam_array[i].DbType =get_ParameterType(entity_curr.P_TYPE); 即可
      

  2.   

    不對,你要同時可以返回OracalDbType枚舉和DbType枚舉,這樣就沒有辦法實現了。
      

  3.   

    OK
       private OracleDbType get_ParameterType(string str_parametertype)
            {            
                OracleParameter current_OracleParameter = new OracleParameter();
                if (str_parametertype != string.Empty)
                {
                    switch (str_parametertype)
                    {
                        #region 根据属性的类型进行case 处理
                        case "OracleDbType.Single":
                            current_OracleParameter.OracleDbType = OracleDbType.Single;
                            break;
                        case "OracleDbType.Varchar2":
                            current_OracleParameter.OracleDbType = OracleDbType.Varchar2;
                            break;
                        case "Oracle.DataAccess.Client.OracleDbType.RefCursor":
                            current_OracleParameter.OracleDbType = Oracle.DataAccess.Client.OracleDbType.RefCursor;
                            break;
                        case "Oracle.DataAccess.Client.OracleDbType.BFile":
                            current_OracleParameter.OracleDbType = Oracle.DataAccess.Client.OracleDbType.BFile;
                            break;
                        #endregion
                    }
                }
                return current_OracleParameter.OracleDbType;
                //return current_OracleParameter;
                //return o_parameter;
            }
      

  4.   

    oParam_array[i].DbType 是DbType Enum類型吧?你返回一個Oracle.DataAccess.Client.OracleDbType.RefCursor是沒有辦法轉換的。
      

  5.   

    哦,原來是全部返回OracleDbType