c#把图片以二进制的形式写入ACCESS数据库
2013-06-01 01:09
190 查看
今天把文件写入到数据库中的时候出现了问题,问了很多人和查了很多资料,结果都没有找到解决的办法,后面经过不断的尝试,终于解决了这个问题。下面把重要的部分跟大家分享下。
有的时候需要把图片存在数据库中以达到用户看不到图片的效果,在这里主要讲解以二进制的形式存储方法。
这里的图片有两种,一种是在本地,一种是通过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 database values('"+str+"')",一定要写成上面那样,
然后加上com(OledCommand类型).arameters.AddWithValue("@pic", str);
然后刷新就可以了。这样写入到数据库中就完成了。
如果是内存流的形式,那么就不能这样写了,
System.IO.MemoryStream io;
这个时候不能 byte[] ms = new byte[fs.Length];fs.Read(ms, 0, ms.Length); 如果这样写了之后读取出来的图片就会报错,错误类型为类型不符。
要改成 byte[] ms = io.ToArray();
后面就是一样的了。
好了 重要的部分就这些,其他的没有什么了。
有的时候需要把图片存在数据库中以达到用户看不到图片的效果,在这里主要讲解以二进制的形式存储方法。
这里的图片有两种,一种是在本地,一种是通过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 database values('"+str+"')",一定要写成上面那样,
然后加上com(OledCommand类型).arameters.AddWithValue("@pic", str);
然后刷新就可以了。这样写入到数据库中就完成了。
如果是内存流的形式,那么就不能这样写了,
System.IO.MemoryStream io;
这个时候不能 byte[] ms = new byte[fs.Length];fs.Read(ms, 0, ms.Length); 如果这样写了之后读取出来的图片就会报错,错误类型为类型不符。
要改成 byte[] ms = io.ToArray();
后面就是一样的了。
好了 重要的部分就这些,其他的没有什么了。
相关文章推荐
- C#把图片以二进制形式存入数据库
- c# 图片二进制存储SQL/读取SQL/显示Image/写入XML/读取XML显示
- c# winform下sql图片二进制存储/读取/显示/写入XML/读取XML显示
- c# winform下sql图片二进制存储/读取/显示/写入XML/读取XML显示
- C#将图片以二进制形式保存数据库
- JAVA将图片以二进制形式存入Access数据库
- c# winform下sql图片二进制存储/读取/显示/写入XML/读取XML显示
- JAVA将以二进制形式存储在Access数据库中的图片提取出来
- 转载:c# winform下sql图片二进制存储/读取/显示/写入XML/读取XML显示
- C# extjs 图片、附件以二进制形式存储至数据库,图片显示,附件下载
- ios sqlite中写入图片二进制数据及读取
- C# 图片和二进制之间的转换
- .Net下二进制形式的文件(图片)的存储与读取
- 图片二进制互相转换C#
- OpenCV - 将图片的二进制信息写入到文件中
- C#向ACCESS数据库插入图片
- C++使用SQLite3心得 -- sqlite3以二进制形式存取图片(MFC,CppSQLite3U封装类)
- C#中利用ADO.NET存储图片、文件等二进制数据
- 使用C#向Sql Sever中存取网络图片和本地图片(二进制流的形式)
- C# 使用FileUpload控件上传图片,将文件转换成二进制进行存储与读取