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

100分求助字符串相等的问题,顶者有分
CS页面
model.syfl   =   ddlSyfl.SelectedItem.Text;-----DROPDOWNLIST的值是从数据库读取的
业务逻辑层
public   bool   Validate(Page   page,   db.Etswk   model,JDBGeneral.OperateMode10   opMode)
                {
                        string   strMsg   =   "以下条件不符合: ";
if   ((dt6   >   366)   &&   ((model.syfl   ==   "早产或低出生体重 "))


请教为什么DDL选择的TEXT为“早产或低出生体重”,model.syfl   ==   "早产或低出生体重 "))为什么不相等

------解决方案--------------------
怎么看你最后那一句话觉得拗口
能描述清楚点么
------解决方案--------------------
好象是编码的问题
------解决方案--------------------
估计是有dll加了空格或其他特殊字符
------解决方案--------------------
确定移除了空格?
------解决方案--------------------
DDL选择的TEXT为“早产或低出生体重”,model.syfl 等于什么

.Trim()试
------解决方案--------------------
断点调试我的model.syfl的值确实为 "早产或低出生体重 ",但是这里model.syfl == "早产或低出生体重 "判断不成功,其中model.syfl的值是页面DROPDOWNLIST选择的SelectedItem.Text
------解决方案--------------------
model.syfl是什么类型的?object的吗?
model.syfl.ToString()== "早产或低出生体重 "试试
------解决方案--------------------
跟踪看看model.syfl的值是否 "早产或低出生体重 ",看看前后是否有空格?
------解决方案--------------------
may be is space problem
------解决方案--------------------
trim一下,然后测试传递到函数中之前确实是“早产或低出生体重”
------解决方案--------------------
数据库阿,貌似有些编码是不一样的
------解决方案--------------------
楼主的这个细节的设计本身就是有问题的。

应该是数据库中 "早产或低出生体重 " 对应于一个pk,比如int id;
然后所有的比较由此id来完成。而不是 "早产或低出生体重 ",这样 "早产或低出生体重 "本身也是可以修改和变动的。