日期:2014-05-18  浏览次数:20386 次

郁闷了
数据库中这个字段是null,
取出来后调试,s= " ";
if   (dsCustomer.Tables[0].Rows[0][ "Sex "]   !=   null   ||   dsCustomer.Tables[0].Rows[0][ "Sex "].ToString().Trim()   !=   " "   ||   dsCustomer.Tables[0].Rows[0][ "Sex "].ToString().Length   ==0)
                {
                        string   s   =   dsCustomer.Tables[0].Rows[0][ "Sex "].ToString();
                        ddlSex.SelectedValue   =   dsCustomer.Tables[0].Rows[0][ "Sex "].ToString();
                }
  else
                {
                        ddlSex.SelectedValue   =   "请选择 ";
                }
他怎么就走不到else里呢

------解决方案--------------------
dsCustomer.Tables[0].Rows[0][ "Sex "] != null
dsCustomer.Tables[0].Rows[0][ "Sex "].ToString().Trim() != " "
dsCustomer.Tables[0].Rows[0][ "Sex "].ToString().Length ==0

说明以上3个条件有一个为true。
------解决方案--------------------
用个段点看看程序的走向不就得了
------解决方案--------------------
设断点看下
dsCustomer.Tables[0].Rows[0][ "Sex "].ToString().Trim()
它的内容是什么
------解决方案--------------------
||改成&&

if (dsCustomer.Tables[0].Rows[0][ "Sex "] != null && dsCustomer.Tables[0].Rows[0][ "Sex "].ToString().Trim() != " " && dsCustomer.Tables[0].Rows[0][ "Sex "].ToString().Length !=0)
{
string s = dsCustomer.Tables[0].Rows[0][ "Sex "].ToString();
ddlSex.SelectedValue = dsCustomer.Tables[0].Rows[0][ "Sex "].ToString();
}
else
{
ddlSex.SelectedValue = "请选择 ";
}

------解决方案--------------------
数据库中这个字段确实是null吗?还是有空格或回车符?