当前位置: 首页 > 编程语言 > C#

从Access数据库中检索图像Share

时间:2023-04-10 14:49:19 C#

我正在尝试从Access数据库中检索图像..privatevoidbtnRetrieve_Click_1(objectsender,EventArgse){//将图像字节临时保存在一个位置并将该路径提供给图片框con.Open();cmd=newOleDbCommand("从形状2中选择图片,其中ID=1",con);da=newOleDbDataAdapter(cmd);da.Fill(dt);if(dt.Rows.Count>0){if(dt.Rows[0]["pic"]!=DBNull.Value){pictureBox4.Image=ByteArrayToImage((Byte[])dt.Rows[0]["图片"]);}}con.Close();}位图ByteArrayToImage(byte[]b){MemoryStreamms=newMemoryStream();byte[]pData=b;ms.Write(pData,0,Convert.ToInt32(pData.Length));位图bm=newBitmap(ms,false);ms.Dispose();返回bm;这似乎是一个常见的问题,请参阅讨论:从Access中读取图像-无效参数问题是图像可以以不同的格式存储在Access数据库中:二进制blob或作为OLE对象。我不知道你在Access数据库中使用的是哪一个,但如果它被保存为一个直接的二进制blob,那么它就是图像本身,所以你的代码应该可以工作。由于您遇到问题,这可能意味着图像的存储方式不同:作为OLE对象。在这种情况下,元数据与图像数据一起存储,元数据使得获取图像变得更加困难,因为您必须以某种方式将其剥离。OLE元数据是可变长度的,因此您不能跳过它。我见过它所做的最好的事情是通过尝试在OLEblob中找到它的“幻数”来找到图像文件的开头。下面的文章和问题会告诉你怎么做:以上是C#学习教程:从Access数据库中获取图片分享的全部内容。收藏不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: