首页 新闻 会员 周边

如何实现ASP.NET中用Image控件有条件的显示图片?

0
悬赏园豆:5 [待解决问题]

我想要实现的功能是:先判断SQL SERVER数据库中Image类型的字段是否为空,若为空,则显示“没有上传图片”提示信息,若不为空,则显示图片。目前我已经能够实现不为空时显示图片,无法实现该字段为空时的功能,因此关键在于如何判断该字段是否为空……我写的字段是:

if(DataReader.Read())

{

Response.Clear();

Response.BinaryWrite((byte[])DataReader["Image"]);

}

else

{

Respose.Write("没有可显示图片");

}

我若选中没有值的Image类型字段,运行时会出现报错:

无法将类型为“System.DBNull”的对象强制转换为类型“System.Byte[]”

排错提示:当从一个数字执行强制转换时,值必须是一个小于无限大的数字。确保源类型可以转换为目标类型。

请高手指点错误之处……

逸风Michelle的主页 逸风Michelle | 初学一级 | 园豆:180
提问于:2010-09-01 10:15
< >
分享
所有回答(4)
0

if( DataReader["Image"]==DBNull.Value)//判断是否为 NULL

{

//读取默认图片

}

else

{

Response.BinaryWrite((byte[])DataReader["Image"]);

}

HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-09-01 10:20
还是存在问题: if(DataReader["Image"]==DBNull.Value)处出现错误提示:在没有任何数据时进行无效的读取尝试
支持(0) 反对(0) 逸风Michelle | 园豆:180 (初学一级) | 2010-09-01 10:37
那你试试 if(DataReader["Image"]==null || DataReader["Image"]==DBNull.Value)
支持(0) 反对(0) HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-09-01 10:39
还是行不通,始终出现上边的错误提示?
支持(0) 反对(0) 逸风Michelle | 园豆:180 (初学一级) | 2010-09-02 11:23
0

加个判断,判断是否为空值,楼上正解

jowo | 园豆:2834 (老鸟四级) | 2010-09-01 10:25
0

你可输出一个默认图片呀,并且默认图片放缓存里,不用每次读。

Astar | 园豆:40805 (高人七级) | 2010-09-01 10:25
如何实现放缓存中?
支持(0) 反对(0) 逸风Michelle | 园豆:180 (初学一级) | 2010-09-02 11:24
@逸风Michelle:按照一楼的做法,把读出来的流放到缓存中。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-09-02 11:27
0

试试这个

if (!DataReader.IsDBNull(DataReader.GetOrdinal("Image")))

{

Response.Clear();

Response.BinaryWrite((byte[])DataReader["Image"]);

 

}

慧☆星 | 园豆:5640 (大侠五级) | 2010-09-01 13:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册