問題の定義:SQLServer
データベースにテーブルがあります。このテーブルにはimage型の列があり、null値を許可します。を使用してこの表を読み、SqlDataReader
利用可能な場合は画像を表示します。
私が最初に試したこと:画像列がnullかどうかを確認するためにこれを行いました
SqlDataReader reader = command.ExecuteReader(); // command is a SqlCommand
while(reader.Read())
{
if(reader["Image"] != null) // Image is a column name of the table
{
//Do something
}
}
結果:しかし、nullに等しくなることはありません(Equal
メソッドもチェックしました)。データが挿入されていなくても、この列がnullになることはありません(SQL Serverでは、実際にはnullであることがわかります)
2回目に試したこと:このコードとその動作を試しましたが、なぜnullが返されないのでしょうか。
SqlDataReader reader = command.ExecuteReader(); // command is a SqlCommand
while(reader.Read())
{
if(reader["Image"].GetType() != typeof(System.DBNull))
{
//Do something
}
}
質問:この振る舞いを説明するアイデアはありますか?SQLServerテーブルのImageタイプの列がnullであるかどうかを確認するためのより良い方法があれば嬉しいです。