图片在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. ASP.NET Core会议管理平台实战_汇总贴

    ASP.NET Core会议管理平台实战 课程地址:https://ke.qq.com/course/389673?from=800004097#term_id=100464670 ASP.NET C ...

  2. Scut

    这是一款免费开源的游戏服务器引擎,适用于开发AVG.SLGRPG.MMOG等类型的网络游戏,同时支持Http.WebSocket和Socket协议通讯,支持Window.Mac和Linux多种平台部署 ...

  3. OPENGL_三角形带GL_TRIANGLE_STRIP详解

    使用三角形带原因:减少顶点传递,渲染时api向显卡传输数据量是瓶颈,用较好的传递方法传递一个三角形最少可以少于一个点. 点的顺序根据奇数,偶数不一样的原因:保持所有三角形法线在同一方向. 原文:htt ...

  4. [Xcode 实际操作]一、博主领进门-(2)第一个工程项目:将导入的图片显示到屏幕上

    目录:[Swift]Xcode实际操作 本文将演示创建第一个工程项目. 在项目导航区,鼠标右键[Assets.xcassets]资源文件夹. 隔壁右侧区域左下角点击[+],打开资源文件管理菜单-> ...

  5. idea下载

  6. Java反编译工具JD-GUI以及Eclipse的反编译插件

    什么是反编译 高级语言源程序经过编译变成可执行文件,反编译就是逆过程.但是通常不能把可执行文件变成高级语言源代码,只能转换成汇编程序. 反编译是一个复杂的过程,所以越是高级语言,就越难于反编译,但目前 ...

  7. sql server 数据库维护

    select 'kill ',s.spid, sd.name, * from sys.sysprocesses sinner join sys.sysdatabases sd on s.dbid=sd ...

  8. mysql(MySQL客户端连接工具)

    在MySQL提供的工具中,DBA使用最频繁的莫过于mysql.这里的mysql不是指MySQL服务,也不是mysql数据库,而是连接数据库的客户端工具.类似于Oracle的sqlplus. 语法: m ...

  9. SSAS中处理时经常出现的几种错误

    1.[重复属性键的错误]"处理时找到重复的属性键"   当在[属性关系]里指定属性关系后,   就出出现此错误,因为不知道Month值“1”,并不知道是属于哪一年的,   所以需要 ...

  10. Java微服务 进程间通信

    目录 进程间通信 同步调用 异步调用 实现方式 进程间通信 同步调用 同步调用比较简单,一致性强,但是容易出调用问题,出现单点故障,因为之间相互依赖,比如RPC必须要依赖的模块上线可用,己方才能调用, ...