1

我有一个存储图像文件路径的表,现在在我的代码中我有一些条件:

var UserQuery = 
    (from u in DataContext.UserProfiles where u.UserIDfk == currentUserId select u)
        .FirstOrDefault();

if (UserQuery.Avatar == DBNull.Value.ToString()) 
{ 
   UsersAvatarImage.ImageUrl = "Images/UserAvatar/default_avatar.jpg";
}

if (UserQuery.Avatar != DBNull.Value.ToString()) 
{ 
   UsersAvatarImage.ImageUrl = UserQuery.Avatar; 
}

我正在检查列的值是否为空,如果是,则将图像控件的值设置为某个默认图像,如果它不显示存储在数据库中的图像,我不知道为什么它不工作。

我还尝试了 string.IsNullOrEmpty 和 else 子句作为第二个 if 或空双引号而不是 DBNull.Value.ToString() 但它也不起作用。

奇怪的是,当我评论第二个 if 条件时,第一个 if 满足条件并显示默认图像,但是当我评论第二部分时,第一部分不起作用

值得注意的是,当我插入数据时,我使用 DBNull.Value.ToString() 将值作为空值传递,该列如何同时为空而不为空,有没有更好的方法来检查这个?

4

2 回答 2

2

您应该只在引用类型上使用 null 而不是 DBNull,或者使您的值类型可以为空。实体框架将为您处理转换。

于 2013-01-20T12:19:28.503 回答
0

好吧,既然您似乎在比较字符串,您是否尝试过这个?:

线

于 2013-01-20T12:23:10.347 回答