c#中将图片保存到mysql数据库,查询数据库发现blob字段为null,

代码如下:然后从数据库读取的时候又显示byte[]imageByte=(byte[])reader["imageblob"];这句无法进行类型转换是怎么回事啊?我是新手,... 代码如下:

然后从数据库读取的时候又显示byte[] imageByte= (byte[])reader["imageblob"];这句无法进行类型转换是怎么回事啊?我是新手,求帮助啊
展开
 我来答
lu233333
2014-10-22 · 超过26用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:58万
展开全部
我之前也试过
数据库字段我设置为了longtext.
用System.Convert.ToBase64String(byte[] aa)将byte组转为字符存;
读的时候用System.Convert.FromBase64String(string bb)将字符转为byte组就可以了.
更多追问追答
追问

我按照你说的做了,显示越界是怎么回事啊?如下图:

追答

能从图片文件读到byte组对吧,

  1. 将byte组转为字符串就能保存在mysql里面了,字段类型要设置为longtext.

  2. 读取的时候从mysql里面读出字符串,再将字符串还原为byte组.

                 byte[] buffer=System.Convert.FromBase64String(str);.

   3.将byte组转为数据流,然后再转为图片就可以用了

                    System.IO.MemoryStream ms = new System.IO.MemoryStream(buffer);

                    Image ima = System.Drawing.Image.FromStream(ms);


最后的ima就是图片文件了,我代码调用了很多方法,不好扣出来..


读图片我是这么写的.

                    string Locapath = openFileDialog1.FileName;

                    byte[] imagebytes = File.ReadAllBytes(@Locapath);

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式