//img 转byte
public static byte[] ImageToBytes(Image image)
{
ImageFormat format = image.RawFormat;
using (MemoryStream ms = new MemoryStream())
{
if (format.Equals(ImageFormat.Jpeg))
{
image.Save(ms, ImageFormat.Jpeg);
}
else if (format.Equals(ImageFormat.Png))
{
image.Save(ms, ImageFormat.Png);
}
else if (format.Equals(ImageFormat.Bmp))
{
image.Save(ms, ImageFormat.Bmp);
}
else if (format.Equals(ImageFormat.Gif))
{
image.Save(ms, ImageFormat.Gif);
}
else if (format.Equals(ImageFormat.Icon))
{
image.Save(ms, ImageFormat.Icon);
}
byte[] buffer = new byte[ms.Length];
ms.Seek(0, SeekOrigin.Begin);
ms.Read(buffer, 0, buffer.Length);
return buffer;
}
}
//byte 转16进制 然后insert into ‘’ 到数据库
public static String bytes2HexString(byte[] b)
{
string str = BitConverter.ToString(b, 0).Replace("-", "");
string hexStr = "0x" + str;
return hexStr;
}
数据库中 photo是image类型的
但是 取出来的时候 model.photo 是byte[]类型的 而且值不一样。
该怎么做?不用SqlParameter
------解决思路----------------------
public static byte[] ImageToBytes(Image image)
你自己返回的明明是byte[],倒回去就行了
------解决思路----------------------
建议你查下数据类型之间的对应关系,数据库的image不等于c#的image,数据库读出来是byte[],需要进行转化
------解决思路----------------------
数据库中的image类型就是二进制类型,没必要转成16进制,转了反而错了.