数据库存取图片信息,有两种方式:

1)转换成二进制数据存储,故首先设置对应的数据字段数据类型为Blob.

2)服务器设置路径保存上传文件,数据库中只存储文件路径。

这里采用第一种方式简单示范如何存储并取出图片。涉及几个类的使用,已经做出简单注释。

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.IO;

using System.Data.OracleClient;//添加引用

namespace ImageDemo

{

public partial class Form1 : Form

{

OpenFileDialog filedialog;

string connstr = "";

public Form1()

{

connstr = "Data Source=xxx;user id=xxx;password=xxx";

InitializeComponent();

}

///

/// 获得要上传的文件

///

///

///

private void button2_Click(object sender, EventArgs e)

{

filedialog = new OpenFileDialog();

filedialog.FilterIndex = 1;

filedialog.Filter = "jpg files (*.jpg)|*.jpg|All files (*.*)|*.*";

if (filedialog.ShowDialog() == DialogResult.OK)

{

txtpath.Text = filedialog.FileName;

}

}

///

/// 上传到数据库中:往数据库存入图片信息

///

///

///

private void button1_Click(object sender, EventArgs e)

{

Cursor.Current = Cursors.WaitCursor;

//获得上传图片的二进制信息

byte[] buffer = File.ReadAllBytes(txtpath.Text.Trim());

Random rd = new Random();

string name = rd.Next(999).ToString();

string sql = "insert into ivan_qq_user(id,name,image) values('"+Guid.NewGuid().ToString()+"','"+name+"',:image)";

using (OracleConnection conn = new OracleConnection(connstr))

{

conn.Open();

OracleCommand cmd = new OracleCommand(sql, conn);

//指名参数类型为Blob

cmd.Parameters.Add(":image", OracleType.Blob);

cmd.Parameters[":image"].Value = buffer;

cmd.ExecuteNonQuery();

}

PreviewImage(name);

Cursor.Current = Cursors.Default;

MessageBox.Show("Done.....");

}

///

/// 预览图像信息:从数据库读图片信息

///

///

private void PreviewImage(string name)

{

ISDApp01.ISDApp01 isd = new ImageDemo.ISDApp01.ISDApp01();

string sql = "select image from IVAN_QQ_USER where name='"+name+"'";

using (OracleConnection conn = new OracleConnection(connstr))

{

conn.Open();

OracleCommand cmd = new OracleCommand(sql,conn);

//获得数据信息并转换成二进制

byte[] fileData = cmd.ExecuteScalar() as byte[];

MemoryStream ms = new MemoryStream(fileData);

//把二进制信息转换成image并show出

Image image = Image.FromStream(ms);

pictureBox1.Image = image;

}

}

}

}

oracle 处理图片,oracle数据库存取图片方法教程-Oracle相关推荐

  1. oracle通过DBlink连接神通数据库方法教程

    oracle通过DBlink连接神通数据库方法教程 (其他数据库也可以) **1.首先确认自己电脑版本 ** 找到Microsoft ODBC ,exe程序位置 :C:\Windows\System3 ...

  2. delphi使用ADO在sql数据库存取图片的方法

    delphi使用ADO在sql数据库存取图片的方法 新手参考,老鸟绕行 我一直不认为能把代码写的和天书一样的程序员是好的程序员,那不过是因为我真的对delphi也就是略懂皮毛,太深了看不懂. 网上查询 ...

  3. 安卓 mysql读取图片路径_android开发之数据库存取图片

    Android数据库中存取图片通常使用两种方式,一种是保存图片所在路径,二是将图片以二进制的形式存储(sqlite3支持BLOB数据类型).对于两种方法的使用,好像第二种方法不如第一种方法更受程序员欢 ...

  4. mysql如何植入到oracle_分享MSSQL、MySql、Oracle的大数据批量导入方法及编程手法细节...

    1:MSSQL SQL语法篇: BULK INSERT [ database_name . [ schema_name ] . | schema_name . ] [ table_name | vie ...

  5. oracle如何根据ID恢复部分数据,三种方法找回Oracle数据库误删除的数据

    三种方法找回Oracle数据库误删除的数据 最新动态来源:点击数:6141更新时间:2018/5/10 有很多朋友都遇到过在操作数据库时误删除某些重要数据的情况,如果数据库没有备份而且数据有十分重要的 ...

  6. ifix oracle,IFIX实时数据通过ODBC转存到Oracle

    <IFIX实时数据通过ODBC转存到Oracle>由会员分享,可在线阅读,更多相关<IFIX实时数据通过ODBC转存到Oracle(7页珍藏版)>请在人人文库网上搜索. 1.一 ...

  7. oracle导出BOM文件,ORACLE ERP导数据(BOM清单)-备份恢复-Oracle频道-中国IT实验室

    方法:把数据导入BOM清单的方法是,把数据导入接口表中,让其自动运行既可.上传文件的时候,要注意使      用ASCII字符模式. 1.自己建立一中转表 drop table cux_bill_te ...

  8. mysql查询bom清单,ORACLE ERP导数据(BOM清单)-数据库专栏,ORACLE

    方法:把数据导入bom清单的方法是,把数据导入接口表中,让其自动运行既可.上传文件的时候,要注意使      用ascii字符模式. 1.自己建立一中转表 drop table cux_bill_te ...

  9. oracle导入初始数据死机,Sqoop导入Oracle数据至hive卡死在hive.HiveImport: Connecting to jdbc:hive2不执行...

    环境信息: HDP-3.1.4 已经下载好odjbc8.jar驱动程序放置在/usr/hdp/current/sqoop-client/lib/目录 Sqoop读取Oracle数据库数据导入Hive时 ...

最新文章

  1. 根据c语言数组定义填写下表,C语言程序设计 自测题(三)
  2. linux6.4 vnc安装与配置,Oracle Enterprise Linux 6.4 下配置vncserver
  3. python mysqldb安装_解决centos7 安装MySQLdb-python 报错 方案
  4. css3 transform matrix 深入理解
  5. GridView调用setAdapter()函数时发生错误
  6. 在c#中用mutex类实现线程的互斥_面试官经常问的synchronized实现原理和锁升级过程,你真的了解吗...
  7. mysql+使用swap_MySQL避免使用SWAP
  8. 对java并发性的理解,【图片】你了解过Java并发编程:性能、扩展性和响应的高端操作吗?【java吧】_百度贴吧...
  9. Leapmotion 找到那双手和一些交互案例
  10. datatables java 分页_DataTables后台分页的使用
  11. Java UDP通信详解:单播、广播、组播
  12. 计算机软考里面的英语试题,2011全国计算机软考网管英语试题及答案(4)
  13. ie edge浏览记录文件_如何在Microsoft Edge中清除浏览历史记录
  14. 超大硬盘linux快速格式化,Linux系统下超大硬盘快速格式化详解
  15. 新浪(1998年12月—2000年3月)
  16. 《R语言入门与数据分析》
  17. 计算机考研数学和英语难吗,英语难还是数学难
  18. python 实现雪容融
  19. 如何实现只有一个路由器不同网段pc间的互通
  20. 服! 买不起2.6亿一只的加密猫, 他用10分钟生了一窝!

热门文章

  1. 微信可以上锁了,从此不要担心了!(文末赠书)
  2. 王者荣耀服务器能不能注销,《王者荣耀》注销账号怎么回事?《王者荣耀》注销账号后能复原吗...
  3. 2018-12-15全球区块链今日热点
  4. python 预编译_python 预编译
  5. 生成licence文件
  6. MTSEA,2732568-75-9可修饰游离半胱氨酸残基
  7. 游离分支提交丢失找回
  8. 从前端小白到大佬 第九天
  9. 盲盒交友变现系统/脱单盲盒/一元交友/存取小纸条盲盒/分销功能/盲盒交友小程序
  10. 自由恋爱离婚率高.婚姻就是找匹配,无关形式