ASP.net 操作 Oracle 的 Blob 字段
来源:互联网 发布:家用天文望远镜 知乎 编辑:程序博客网 时间:2024/05/21 13:15
最近在做个项目,导师要求一定要用 Oracle 来存数据。所以有一个功能是要把图片等文件都存到 Oracle 的 Blob 字段里。上网搜了好久,没发现有哪个地方是讲得清楚的,最后还是得自己摸索出来。
用的是 Asp.net(C#),Odbc 方式连接 Oracle。
OdbcConnection conn = new OdbcConnection(m.connstring());
OdbcCommand ocm = new OdbcCommand();
conn.Open();
ocm.Connection = conn;
// 上面都是基本的打开数据库连接的语句
HttpPostedFile file = file1.PostedFile; // file1 是 <input type="file" 的网页对象
System.IO.BinaryReader br = new System.IO.BinaryReader(file.InputStream);
byte[] blob = new byte[file.ContentLength]; // 将 POST 过来的文件内容读成 byte[] 的形式
blob = br.ReadBytes(file.ContentLength); // 读进来之后,等一下写进数据库里面
ocm.CommandText = "update person set photo=? where pid=" + ipid; // photo 就是这的 Blob 字段
// 就这么写进这个 photo 字段里面,主要是类型是 OdbcType.Binary。如果不是用 ODBC 而是用 ADO 的,这里也是xxx.Binary 这样的
ocm.Parameters.Add("photo", OdbcType.Binary, file.ContentLength).Value = blob;
ocm.ExecuteNonQuery();
读的时候,用一个 aspx 文件来动态的生成图像数据就不用生成一个临时文件了(至少不用自己维护这些临时文件)。 比如:
ocm.CommandText = "select photo from person where pid=?";
ocm.Parameters.Add("pid", OdbcType.Char).Value = ipid;用的是 Asp.net(C#),Odbc 方式连接 Oracle。
OdbcConnection conn = new OdbcConnection(m.connstring());
OdbcCommand ocm = new OdbcCommand();
conn.Open();
ocm.Connection = conn;
// 上面都是基本的打开数据库连接的语句
HttpPostedFile file = file1.PostedFile; // file1 是 <input type="file" 的网页对象
System.IO.BinaryReader br = new System.IO.BinaryReader(file.InputStream);
byte[] blob = new byte[file.ContentLength]; // 将 POST 过来的文件内容读成 byte[] 的形式
blob = br.ReadBytes(file.ContentLength); // 读进来之后,等一下写进数据库里面
ocm.CommandText = "update person set photo=? where pid=" + ipid; // photo 就是这的 Blob 字段
// 就这么写进这个 photo 字段里面,主要是类型是 OdbcType.Binary。如果不是用 ODBC 而是用 ADO 的,这里也是xxx.Binary 这样的
ocm.Parameters.Add("photo", OdbcType.Binary, file.ContentLength).Value = blob;
ocm.ExecuteNonQuery();
读的时候,用一个 aspx 文件来动态的生成图像数据就不用生成一个临时文件了(至少不用自己维护这些临时文件)。 比如:
ocm.CommandText = "select photo from person where pid=?";
ocm.Connection = conn;
odr = ocm.ExecuteReader();
if (odr.HasRows)
{
Response.ContentType = "image/jpeg"; // 说明它的格式
Response.OutputStream.Write(((byte[])odr["photo"]), 0, ((byte[])odr["photo"]).Length);
//从数据库中读出来,以流的形式发送出去
}
- ASP.net 操作 Oracle 的 Blob 字段
- ORACLE操作BLOB字段
- 关于asp.net操作oracle BLOB
- Oracle中BLOB字段的操作
- 用hibernate操作oracle的blob字段
- 使用java操作oracle的blob字段
- 用sql操作oracle的blob字段
- 用ADO操作ORACLE的BLOB字段
- ibatis操作oracle的clob字段和blob字段
- Oracle数据库BLOB字段操作
- Oracle数据库BLOB字段操作
- Oracle数据库BLOB字段操作
- 用sql操作oracle的blob字段的两个例子
- C#.net向oracle的blob字段插入文件
- 使用JDBC操作基于Oracle的CLOB,BLOB字段类型
- java对oracle中blob字段的操作
- Delphi与Oracle中BLOB字段的操作
- Delphi与Oracle中BLOB字段的操作
- 最大割问题解决新方法-CE
- JavaMail 实现邮件发送
- Silverlight 2学习教程(八):检测客户端是否安装 Silverlight 插件
- oracle sql 分组统计
- 跨越源界限.开创新纪元--暨微软互操作阶段成果汇报会
- ASP.net 操作 Oracle 的 Blob 字段
- Expression Web 2 中支持 PHP
- 最简单的makefile
- ALV 输出抬头
- 你可以为这世界付出更多
- 我的Java旅行01
- 计算机英语词汇:数据库
- Script.lua__padPress
- 页面重定向Redirect和Transfer的区别