今天把文件写入到数据库中的时候出现了问题,问了很多人和查了很多资料,结果都没有找到解决的办法,后面经过不断的尝试,终于解决了这个问题。下面把重要的部分跟大家分享下。
有的时候需要把图片存在数据库中以达到用户看不到图片的效果,在这里主要讲解以二进制的形式存储方法。
这里的图片有两种,一种是在本地,一种是通过GDI画好的。
在本地的图片写入数据库中的时候
FileStream fs = new FileStream(dt.FileName, FileMode.Open, FileAccess.ReadWrite);
这儿是把本地图片转换为内存流,FileName是文件的全路径名,dt是打开文件对话框。后面的参数不用管,照写就可以了。
byte[] ms = new byte[fs.Length];
//这儿是神明一个字节数组,数组的长度是long类型的
fs.Read(ms, 0, ms.Length);
这儿是吧图片内存流写到字节数组中。
好了 现在已经得到了图片的二进制数组,下面就是把数组中的数据写入到数据库中。
创建数据库,创建一个数据表,表中有一个字段pic,注意了,这儿pic字段的类型一定要是OLE对象类型,要不然存储不了。
然后就是写入数据库字串,至于连接就不讲在这儿,string str = "insert into database values(@pic)"。
这儿是重点了,这儿不能写成"insert into datab
这里的图片有两种,一种是在本地,一种是通过GDI画好的。
在本地的图片写入数据库中的时候
FileStream fs = new FileStream(dt.FileName, FileMode.Open, FileAccess.ReadWrite);
这儿是把本地图片转换为内存流,FileName是文件的全路径名,dt是打开文件对话框。后面的参数不用管,照写就可以了。
byte[] ms = new byte[fs.Length];
//这儿是神明一个字节数组,数组的长度是long类型的
fs.Read(ms, 0, ms.Length);
这儿是吧图片内存流写到字节数组中。
好了 现在已经得到了图片的二进制数组,下面就是把数组中的数据写入到数据库中。
创建数据库,创建一个数据表,表中有一个字段pic,注意了,这儿pic字段的类型一定要是OLE对象类型,要不然存储不了。
然后就是写入数据库字串,至于连接就不讲在这儿,string str = "insert into database values(@pic)"。
这儿是重点了,这儿不能写成"insert into datab