我想要实现的功能是:先判断SQL SERVER数据库中Image类型的字段是否为空,若为空,则显示“没有上传图片”提示信息,若不为空,则显示图片。目前我已经能够实现不为空时显示图片,无法实现该字段为空时的功能,因此关键在于如何判断该字段是否为空……我写的字段是:
if(DataReader.Read())
{
Response.Clear();
Response.BinaryWrite((byte[])DataReader["Image"]);
}
else
{
Respose.Write("没有可显示图片");
}
我若选中没有值的Image类型字段,运行时会出现报错:
无法将类型为“System.DBNull”的对象强制转换为类型“System.Byte[]”
排错提示:当从一个数字执行强制转换时,值必须是一个小于无限大的数字。确保源类型可以转换为目标类型。
请高手指点错误之处……
if( DataReader["Image"]==DBNull.Value)//判断是否为 NULL
{
//读取默认图片
}
else
{
Response.BinaryWrite((byte[])DataReader["Image"]);
}
加个判断,判断是否为空值,楼上正解
你可输出一个默认图片呀,并且默认图片放缓存里,不用每次读。
试试这个
if (!DataReader.IsDBNull(DataReader.GetOrdinal("Image")))
{
Response.Clear();
Response.BinaryWrite((byte[])DataReader["Image"]);
}