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; 
}

列の値がnullかどうかを確認しています.nullの場合は、画像コントロールの値をデフォルトの画像に設定します。データベースに保存されている画像が表示されない場合は、なぜそうでないのかわかりません仕事。

DBNull.Value.ToString() の代わりに string.IsNullOrEmpty および else 句を 2 番目の if または空の二重引用符で試しましたが、どちらも機能しません。

奇妙なことに、2 番目の if をコメントして最初の if を条件を満たしてデフォルトの画像を表示すると、2 番目の部分にコメントを戻すと最初の部分が機能しません。

データを挿入したときに、DBNull.Value.ToString() を使用して値を null として渡すことに注意してください。この列を同時に null にする方法と null ではない方法があります。これを確認するより良い方法はありますか?

4

2 に答える 2

2

参照型で DBNull の代わりに null を使用するか、値の型を null 可能にする必要があります。Entity Framework が変換を処理します。

于 2013-01-20T12:19:28.503 に答える
0

さて、文字列を比較しているように見えるので、これを試しましたか? :

スレッド

于 2013-01-20T12:23:10.347 に答える