日期:2015-04-15  浏览次数:4169 次

1.将Image图像文件存入到数据库中

       我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才能存入数据库中.

要这里有关数据的操作略写,我将一些代码段写成方法,方便直接调用.

复制代码
 1//根据文件名(完全路径)
 2public byte[] SetImageToByteArray(string fileName)
 3    {
 4        FileStream fs = new FileStream(fileName, FileMode.Open);
 5        int streamLength = (int)fs.Length;
 6        byte[] image = new byte[streamLength];
 7        fs.Read(image, 0, streamLength);
 8        fs.Close();
 9        return image;
10    }

11
12//另外,在ASP.NET中通过FileUpload控件得到的图像文件可以通过以下方法
13public byte[] SetImageToByteArray(FileUpload FileUpload1)
14    {
15        Stream stream = FileUpload1.PostedFile.InputStream;
16        byte[] photo = new byte[FileUpload1.PostedFile.ContentLength];
17        stream.Read(photo, 0, FileUpload1.PostedFile.ContentLength);
18        stream.Close();
19        return photo;
20    }
复制代码

 

2.从SQL Server数据库读取Image类型的数据,并转换成bytes[]或Image图像文件

 

复制代码
 1//要使用SqlDataReader要加载using System.Data.SqlClient命名空间
 2//将数据库中的Image类型转换成byte[]
 3        public byte[] SetImage(SqlDataReader reader)
 4        {
 5            return (byte[])reader["Image"];//Image为数据库中存放Image类型字段
 6        }

 7
 8//将byte[]转换成Image图像类型
 9//加载以下命名空间using System.Drawing;/using System.IO;
10using System.Data.SqlClient;*/
11        public Image SetByteToImage(byte[] mybyte)
12        {
13           Image image;
14             MemoryStream mymemorystream = new MemoryStream(mybyte,0, mybyte.Length);
15           image = Image.FromStream(mymemorystream);
16           return image; 
17        }
复制代码