当前位置:编程学习 > C#/ASP.NET >>

数据库是ACCESS的,我可以将图片成功地插入到数据库中,但是读出来的时候,图片显示不出来,显示的是一个大红叉

数据库是ACCESS的,我可以将图片成功地插入到数据库中,但是读出来的时候,图片显示不出来,显示的是一个大红叉,想问一下,是不是数据库对应图片设置的字段类型的问题,我设置的是OLE对象(如果不是OLE对象,那么应该是什么呢?),如果是设置的这个类型,那么是什么原因导致我读不出图片呢? 十分感谢大家的帮助 
我传入了一个序号,依据这个序号查的图片,数据库中是有值的啊
string strImageID = Request.QueryString["num"].ToString(); 

Response.Write(strImageID); 
OleDbConnection MyCn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + Server.MapPath("first.mdb")); 
OleDbCommand MyCmd = new OleDbCommand("select * from images where num=" + strImageID, MyCn); 

MyCn.Open(); 
OleDbDataReader rdr = MyCmd.ExecuteReader(CommandBehavior.CloseConnection); 
if (rdr.Read()) 

Response.Clear(); 
Response.ContentType = "images/*";//定义显示类型 
Response.BinaryWrite((byte[])rdr["picture"]);//输出图片 

MyCn.Close(); 
这个是我读图片的代码,谢谢了




--------------------编程问答-------------------- 你看一下下载的代码吧!
百度搜。网上有,你输出的时候错了!
--------------------编程问答-------------------- ole是对的,这些代码看对你有没帮助

                            System.Drawing.Bitmap bit = null;
                            byte[] bb = null;
                            OleDbDataReader sd = DBoper.GetOleReader(sqlcomstr, BaseInfo.DBConnString);
                            while (sd.Read())
                            {
                                bb = (byte[])sd[0];
                            }
                            MemoryStream ms = new MemoryStream(bb, true);
                            ms.Write(bb, 0, bb.Length);
                            bit = new System.Drawing.Bitmap(ms);
                            ms.Close();
                            sd.Dispose();

补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,