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

代码如下:

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

我之前也试过
数据库字段我设置为了longtext.
用System.Convert.ToBase64String(byte[] aa)将byte组转为字符存;
读的时候用System.Convert.FromBase64String(string bb)将字符转为byte组就可以了.追问

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

追答

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

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

    读取的时候从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);

追问

我是这样写的,

插入成功了,只是刚插入结束立刻就显示上面截图中的越界问题了,我再看看,非常感谢

温馨提示:答案为网友推荐,仅供参考
相似回答