很easy的问题,帮我看看判断不为空的条件怎么写

nsi20141 2004-09-17 09:52:42
if(dsExcel.Tables [0].Rows [i][j.ToString ()+"日"].ToString ().Trim ()!=""||dsExcel.Tables [0].Rows [i][j.ToString ()+"日"]!=null)
{
}
这么写怎么会有问题呢
不能起到判断的作用
...全文
129 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
nsi20141 2004-09-17
  • 打赏
  • 举报
回复
谢了,ok了
derek 2004-09-17
  • 打赏
  • 举报
回复
sorry,看错了。
hbxtlhx的应该对。
北京的雾霾天 2004-09-17
  • 打赏
  • 举报
回复
把if(dsExcel.Tables [0].Rows [i][j.ToString ()+"日"].ToString ().Trim ()!=""||dsExcel.Tables [0].Rows [i][j.ToString ()+"日"]!=null)
{
}
改成如下:
if(dsExcel.Tables [0].Rows [i][j.ToString ()+"日"] != null && dsExcel.Tables [0].Rows [i][j.ToString ()+"日"].ToString ().Trim () !="" )
{
}
因为如果你的字段dsExcel.Tables [0].Rows [i][j.ToString ()+"日"]如果为null时它的ToString()是出错的,但是改后,先计算的是它为不为空,如果为空则不再进行ToString().Trim()这个了,也就不会出错了.
所以出错的原因是C#里的表达式计算顺序的问题.
derek 2004-09-17
  • 打赏
  • 举报
回复
+"日"后还有可能为空吗?!
Grace_ghb 2004-09-17
  • 打赏
  • 举报
回复
调试跟踪一下,看看
dsExcel.Tables [0].Rows [i][j.ToString ()+"日"] 到底是什么?
qcny 2004-09-17
  • 打赏
  • 举报
回复
该为
if(dsExcel.Tables [0].Rows [i][j.ToString ()+"日"].ToString ().Trim ()!=""||dsExcel.Tables [0].Rows [i][j.ToString ()+"日"]!="")
{
}
试试
tfrtfr 2004-09-17
  • 打赏
  • 举报
回复
||后面不要,或者用&&;自己想一下逻辑

110,566

社区成员

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

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

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