我有一个拥有用户可选配置文件的数据库。在配置文件中我有字符串,字符(用于M或F)和整数。从SQL数据库中处理null int/char的最佳做法是什么?
我遇到了一个问题,我尝试将用户的性别放入Profile对象的属性中,并且应用程序崩溃,因为它不知道如何处理返回的空值。
我尝试了数据流延到合适的类型
char sex = (char)dt.Rows[0]["Sex"];
这并没有解决我的问题。然后我尝试将类型更改为Nullable和Nullable,并获得所有相同的转换问题。我目前能找到的解决方案如下:
object.sex = null;
if(dt.Rows[0]["Sex"] != DBNull.Value)
object.sex = (char)dt.Rows[0]["Sex"];
object.WorkExt = null;
if(dt.Rows[0]["WorkExt"] != DBNull.Value)
object.WorkExt = (int)dt.Rows[0]["WorkExt"];
有没有更简单或更好的方法来做到这一点?还是我在正确的轨道上?
这只是工作,如果你的函数返回一个对象,你投返回值为char?在任务中。 .NET 3.5的DataRow扩展中的Field方法为您做到这一点。 – 2008-11-25 22:26:15