数据库是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#