从sql数据库里显示或者输出二进制图片
现有sql数据库一个,里面有一张表格为BADGE_V,字段BADGE_DISPPHOTO的设定为varbinary(18).想要通过其已存的二进制照片来显示原本照片,或者...
现有sql数据库一个,里面有一张表格为BADGE_V, 字段BADGE_DISPPHOTO的设定为varbinary(18).
想要通过其已存的二进制照片来显示原本照片,或者将他们输出也可以.
通过好几天的搜索,最后只能显示成什么都没有的这样.
唉~ 大神帮忙啊!
数据库的原本表哥图片奉上如下:
搜索好几天后也只能显示到这里...什么都看不到...
究竟是不是一定要有原来的图片才可以显示
还是只要这些二进制号码就可以了??? 展开
想要通过其已存的二进制照片来显示原本照片,或者将他们输出也可以.
通过好几天的搜索,最后只能显示成什么都没有的这样.
唉~ 大神帮忙啊!
数据库的原本表哥图片奉上如下:
搜索好几天后也只能显示到这里...什么都看不到...
究竟是不是一定要有原来的图片才可以显示
还是只要这些二进制号码就可以了??? 展开
展开全部
不需要原图片,实际上你可以把它理解成文件流。所以说你只需要读取到数据库的二进制到然后解析还原成原图片就可以了。像你这种情况应该是还原的方法不对或者是二进制有问题。
这是我的一段你参照下看可以不:
byte[] MyData = new byte[0];
if (MyData != null && !Row.GetString("CstSignature").IsNullOrEmpty())
{
MyData = (byte[])Row["CstSignature"];//读取第一个图片的位流
int ArraySize = MyData.GetUpperBound(0);//获得数据库中存储的位流数组的维度上限,用作读取流的上限
FileStream fs = new FileStream(@"c:/00.jpg", FileMode.OpenOrCreate, FileAccess.Write);
fs.Write(MyData, 0, ArraySize);
fs.Close(); //-- 写入到c:/00.jpg。
(this.FindControl("picPhoto") as StarPictureBox).Image = Image.FromFile("c:/00.jpg");
}
这是我的一段你参照下看可以不:
byte[] MyData = new byte[0];
if (MyData != null && !Row.GetString("CstSignature").IsNullOrEmpty())
{
MyData = (byte[])Row["CstSignature"];//读取第一个图片的位流
int ArraySize = MyData.GetUpperBound(0);//获得数据库中存储的位流数组的维度上限,用作读取流的上限
FileStream fs = new FileStream(@"c:/00.jpg", FileMode.OpenOrCreate, FileAccess.Write);
fs.Write(MyData, 0, ArraySize);
fs.Close(); //-- 写入到c:/00.jpg。
(this.FindControl("picPhoto") as StarPictureBox).Image = Image.FromFile("c:/00.jpg");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你个思路,你应该将值另存成图片,或读出二进制流后用图片显示控件显示吧。
具体操作我没做过sqlserver 的做过oracle txt类的
具体操作我没做过sqlserver 的做过oracle txt类的
追问
我明白你的意思,但是我不知道具体怎么做
唉~ 头疼啊...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询