20120520晚

在传智学习有一个多月了,用一句话来形容就是痛并快乐着,老师讲课听激情的,课后的练习很煎熬的,我喜欢这种煎熬的过程,凤凰涅槃,百炼成钢就是这个道理

下面送上关于三层中的关于空值的问题的总结 1.在Model中如果遇到可空值类型(值类型)则可以这么写(为了方便这里都以int为例) public int? Age { get; set; } 2.在数据访问层(DAL层) 在数据访问层提供的占位参数(这里没有值,后来才给他赋值) //数据库判断为空的话应该为DBNull.Value //而DBNull.Value的类型为DBNull类型 所以为了可以达到转换, //后面应该为object 这里是给数据库赋值 SqlParameter[] pms=new SqlParameter[]{ new SqlParameter("@age",model.age==null?DBNull.Value:(object)model.age) }; 此时不可以为int?因为int?只能判断是否为空和整型 给C#赋值为null,给数据库赋值为DBNull 这里是从数据库取值 person.age=reader.isDBNull(2)?null:(int?)reader.getint32(2) 3.在业务逻辑层(BLL层) 4.在表现层(UI层) 由于年龄可以为空,所以用户可以再文本框中不输入 如果不输入则文本框为空字符串, 如果输入则要以整型保存 //字符串的空值判断为string.Empty //为了后面的匹配, //应该让后面的两个类型相同或者可以隐式转换,也可以是多态,用前面的接收即可 下面这个是从TEXT中取值 Person.Age=txtage.Text.Trim()==string.Empty?null:(int?)Convert.ToiNT32(txtage.Text.Trim()); 下面是给text赋值 txt.text=row.cell[0].value==null?string.Empty:row.cell[0].value.tostring();
posted @ 2012-05-21 22:14  冰雪乾坤  阅读(135)  评论(0编辑  收藏  举报