c#中将图片保存到mysql数据库,查询数据库发现blob字段为null,
代码如下:然后从数据库读取的时候又显示byte[]imageByte=(byte[])reader["imageblob"];这句无法进行类型转换是怎么回事啊?我是新手,...
代码如下:
然后从数据库读取的时候又显示byte[] imageByte= (byte[])reader["imageblob"];这句无法进行类型转换是怎么回事啊?我是新手,求帮助啊 展开
然后从数据库读取的时候又显示byte[] imageByte= (byte[])reader["imageblob"];这句无法进行类型转换是怎么回事啊?我是新手,求帮助啊 展开
1个回答
展开全部
我之前也试过
数据库字段我设置为了longtext.
用System.Convert.ToBase64String(byte[] aa)将byte组转为字符存;
读的时候用System.Convert.FromBase64String(string bb)将字符转为byte组就可以了.
数据库字段我设置为了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);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询