图片在oracle数据库中一般以二进制存在,存储类型是blob,然而clob类型一般存储的是大于4000的字符,不能用来存储图像这样的二进制内容,下面展示一下实现图像,二进制,oracle 数据库的应用过程

公共方法:

    //将图片以二进制流
public byte[] SaveImage(String path)
{
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); //将图片以文件流的形式进行保存
BinaryReader br = new BinaryReader(fs);
byte[] imgBytesIn = br.ReadBytes((int)fs.Length); //将流读入到字节数组中
return imgBytesIn;
}

存入数据库:

 using (OracleConnection con = new OracleConnection(conStr))
{
con.Open();
string path = @"F:\三门\1.封面.JPG";
byte[] bytes = SaveImage(path);
string strGetPicture = "insert into aq (content) values(:picByte)";
using (OracleCommand cmd = new OracleCommand(strGetPicture,con))
{
cmd.Parameters.Add(":picByte",OracleDbType.Blob);
cmd.Parameters[":picByte"].Value = bytes;
cmd.ExecuteNonQuery();
}
}

从数据库取出并且转化存入本地指定地址:

 using (OracleConnection con = new OracleConnection(conStr))
{
con.Open();
string strGetPicture = "select t.content from AQ t";//这里假设只有一条记录
using (OracleCommand cmd = new OracleCommand(strGetPicture, con))
{
string strPath = @"F:\image\a.tif";
object reader = cmd.ExecuteScalar();//如果有多条可以写成 object reader = chunkReader["content"]; 类似这样的形式
byte[] bytes = (byte[])reader;//读到的内容转化成字节流 System.IO.MemoryStream ms = new MemoryStream(bytes);//创建流
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);//从流中创建image对象
img.Save(strPath);//将image对象保存成图片存入指定位置
}
}

图片,二进制,oracle数据库的更多相关文章

  1. asp.net将图片转成二进制存入数据库

    一.代码如下 int code = int.Parse(this.TextBox1.Text);//图片编码 string value = this.FileUpload1.PostedFile.Fi ...

  2. [转载]数据库存储图片(MSSQL/ORACLE/ACCESS

    下面我来汇总一下如何将图片保存到SqlServer.Oracle.Access数据库中.首先,我们要明白图片是以二进制的形式保存在数据库中的,那么把图片保存到数据库中的步骤大体上有这几步1.将图片转换 ...

  3. C# winform 窗体应用程序之图片上传Oracle数据库保存字段BLOB

    C# winform 窗体应用程序之图片上传Oracle数据库保存字段BLOB 我用的数据库是Oracle,就目前来看,许多数据库现在都倾向于Oracle数据库,对ORACLE数据库基本的操作也是必须 ...

  4. ODBC,实现图片循环写入Oracle数据库

    import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import jav ...

  5. c#代码 天气接口 一分钟搞懂你的博客为什么没人看 看完python这段爬虫代码,java流泪了c#沉默了 图片二进制转换与存入数据库相关 C#7.0--引用返回值和引用局部变量 JS直接调用C#后台方法(ajax调用) Linq To Json SqlServer 递归查询

    天气预报的程序.程序并不难. 看到这个需求第一个想法就是只要找到合适天气预报接口一切都是小意思,说干就干,立马跟学生沟通价格. ​ ​不过谈报价的过程中,差点没让我一口老血喷键盘上,话说我们程序猿的人 ...

  6. Python 把二进制mnist数据库转换为图片

    mnist数据库可以通过caffe里的get_mnist.sh文件下载,路径是: caffe-master/data/mnist/get_mnist.sh,get_mnist.sh内容如下: #!/u ...

  7. 获得数据库image图片二进制

    /// <summary>        /// 获得图片二进制        /// </summary>        /// <param name="u ...

  8. VS2015连接Oracle数据库(转)

    原文地址:https://xuanwo.org/2016/01/03/vs-oracle-11g 开发环境 宿主机:Win10 + VS2015 + ODP.Net for VS2015虚拟机:Win ...

  9. ADO.Net对Oracle数据库的操作【转载】

    一 ADO.Net简介 访问数据库的技术有许多,常见的有一下几种:开放数据库互联(ODBC).数据访问对象(DAO).远程数据对象 (RDO). ActiveX数据对象(ADO).我们今天主要要学习A ...

随机推荐

  1. Flutter实战视频-移动电商-64.会员中心_顶部头像UI布局

    64.会员中心_顶部头像UI布局 会员中心的样式 member.dart 清除原来的代码生成一个基本的结构 默认返回一个scaffold脚手架工具,body里面布局使用ListView,这样不会出现纵 ...

  2. 【废弃中】JavaScript 内置Object

    创建: 2017/09/24 更新: 2018/01/22 增加window对象内容的链接 更改标题: [JavaScript 主要的自带Object] -> [JavaScript 内置Obj ...

  3. (水题)HDU - 1077 - Catching Fish - 计算几何

    http://acm.hdu.edu.cn/showproblem.php?pid=1077 很明显这样的圆,必定有两个点在边界上.n平方枚举圆,再n立方暴力判断.由于没有给T,所以不知道行不行.

  4. C++里的强制类型转换符reinterpret_cast、static_cast 、dynamic_cast、const_cast 区别

    C 风格(C-style)强制转型如下: (T) exdivssion // cast exdivssion to be of type T 函数风格(Function-style)强制转型使用这样的 ...

  5. Unity3D研究院之IOS&Android收集Log文件(六十二)

    开发项目的时候尤其在处理与服务器交互这块,如果服务端程序看不到客户端请求的Log信息,那么无法修改BUG.在Windows上Unity会自动讲Log文件写入本地,但是在IOS和Android上确没有这 ...

  6. std::thread 在DLLMain 中会发生死锁 std::thread cause deadlock in DLLMain

    注意不要再DLLMain中使用 std::thread 否则会发生死锁. 但是可以使用 _beginthreadex (此函数可以使用lambda) 或者直接使用windows的底层函数: Creat ...

  7. jzoj5990. 【北大2019冬令营模拟2019.1.6】Bear (状压dp)

    题面 题解 我永远讨厌dp.jpg 搞了一个下午优化复杂度最后发现只要有一个小trick就可以A了→_→.全场都插头dp就我一个状压跑得贼慢-- 不难发现我们可以状压,对于每一行,用状态\(S\)表示 ...

  8. Hackintosh

    条件:Mac环境(也可在Windows电脑上用虚拟机建立).两只(一只亦可)16G及以上优盘.一块64G以上SSD固态(机械)硬盘.一台待折腾的Windows电脑 1.创建安装盘: ·app stor ...

  9. struts工作原理

    在struts2的应用中,从用户请求到服务器返回相应响应给用户端的过程中,包含了许多组件如:Controller.ActionProxy.ActionMapping.Configuration Man ...

  10. Linux (三)

    chmod :用来改变文件或目录的访问权限 语法格式:chmod [参数选项] [mode][文件或者目录] 参数选项: -v :显示权限变更的详细信息 -R :对当前目录下的所有文件以及子目录进行相 ...