动态返回参数类型

jhtchina 2008-04-16 03:06:44
/// <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);
应该怎么写比较好
谢谢啊
...全文
107 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
boblaw 2008-04-16
  • 打赏
  • 举报
回复
哦,原來是全部返回OracleDbType
boblaw 2008-04-16
  • 打赏
  • 举报
回复
oParam_array[i].DbType 是DbType Enum類型吧?你返回一個Oracle.DataAccess.Client.OracleDbType.RefCursor是沒有辦法轉換的。
jhtchina 2008-04-16
  • 打赏
  • 举报
回复
问题解决
jhtchina 2008-04-16
  • 打赏
  • 举报
回复
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;
}
boblaw 2008-04-16
  • 打赏
  • 举报
回复
不對,你要同時可以返回OracalDbType枚舉和DbType枚舉,這樣就沒有辦法實現了。
boblaw 2008-04-16
  • 打赏
  • 举报
回复

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); 即可
jhtchina 2008-04-16
  • 打赏
  • 举报
回复
这个里面括号里面应该怎么写?
或者有什么好的思路
谢谢啊

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧