C#访问Oracle存储过程OUT的字符串参数空置变成了“null”的字符串

Diza1986 2018-05-21 07:36:59
RT

,net framework4.7
Oracle.DataAccess.dll Ver4.122.1.0
Oracle11g

Oracle存储过程有一OUT VARCHAR2的参数AAA,程序中执行了 AAA := NULL;

C#端执行后,通过Command.Parameters["AAA"].Value.ToString();访问结果为"null"的字符串。
怎么不是DBNull呢?觉得应该得到""(String.Empty)啊
Debug查了下,System.DBNull.Value是{} 而 Command.Parameters["AAA"].Value是{null}
System.DBNull.Value.ToString()是""(空字符) 而 Command.Parameters["AAA"].Value.ToString()是"null"

这是什么情况?变成"null"也太不科学了吧。。。。怎么判断空值呢??
...全文
804 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Diza1986 2018-05-22
  • 打赏
  • 举报
回复
Oracle.DataAccess和system.data.oracleclient应该是差不多的吧。 貌似就是必须要先判空,现在写成下面这样 if ( ((OracleString)command.Parameters["AAA"].Value).Isnull ) return string.Empty; else return command.Parameters["AAA"].Value.ToString(); 感觉很麻烦

110,529

社区成员

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

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

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