问题描述
数据库是ACCESS的,我可以将图片成功地插入到数据库中,但是读出来的时候,图片显示不出来,显示的是一个大红叉,想问一下,是不是数据库对应图片设置的字段类型的问题,我设置的是OLE对象(如果不是OLE对象,那么应该是什么呢?),如果是设置的这个类型,那么是什么原因导致我读不出图片呢?十分感谢大家的帮助我传入了一个序号,依据这个序号查的图片,数据库中是有值的啊stringstrImageID=Request.QueryString["num"].ToString();Response.Write(strImageID);OleDbConnectionMyCn=newOleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;DataSource="+Server.MapPath("first.mdb"));OleDbCommandMyCmd=newOleDbCommand("select*fromimageswherenum="+strImageID,MyCn);MyCn.Open();OleDbDataReaderrdr=MyCmd.ExecuteReader(CommandBehavior.CloseConnection);if(rdr.Read()){Response.Clear();Response.ContentType="images/*";//定义显示类型Response.BinaryWrite((byte[])rdr["picture"]);//输出图片}MyCn.Close();这个是我读图片的代码,谢谢了
解决方案
解决方案二:
你看一下下载的代码吧!百度搜。网上有,你输出的时候错了!
解决方案三:
ole是对的,这些代码看对你有没帮助System.Drawing.Bitmapbit=null;byte[]bb=null;OleDbDataReadersd=DBoper.GetOleReader(sqlcomstr,BaseInfo.DBConnString);while(sd.Read()){bb=(byte[])sd[0];}MemoryStreamms=newMemoryStream(bb,true);ms.Write(bb,0,bb.Length);bit=newSystem.Drawing.Bitmap(ms);ms.Close();sd.Dispose();