在前面的博文中,博主介绍了使用Access数据库来存储图片http://blog.sina.com.cn/s/blog_62cd5a980100vjpt.html,但是Oracle数据库毕竟和Access数据库存在差异,本文主要介绍使用Oracle数据库来存储图片文件,从实现过程来看。Oracle数据库和Access数据库在存储图片文件时还是不一样的
首先,在Oracle数据库中敬爱那个里一个存储图片的表
-- Create table
create table IMAGETABLE
(
NUM NUMBER not null,
FILENAME NVARCHAR2(30),
FILETYPE NVARCHAR2(20),
FILELENGTH NUMBER,
LOADDATE NVARCHAR2(30),
CONTENT BLOB
)
tablespace LCERP_DATA
pctfree 10
pctused 40
initrans 1
maxtrans 255
storage
(
initial64
minextents1
maxextentsunlimited
);
-- Create/Recreate primary, unique and foreign keyconstraints
alter table IMAGETABLE
add constraint NUM primary key (NUM)
using index
tablespace LCERP_DATA
pctfree 10
initrans 2
maxtrans 255
storage
(
initial64K
minextents1
maxextentsunlimited
);
表中的NUM字段为自动增长型,不需要在程序中控制,自动增长的办法见博文http://blog.sina.com.cn/s/blog_62cd5a980100w6m5.html
后台程序:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Oracle.DataAccess.Client;
using System.Data;
using System.IO;
using System.Globalization;
public partial class InsertImageToOracle : System.Web.UI.Page
{
protectedvoid Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
OracleConnection conn = getConnection();
getData(conn);
closeConnection(conn);
}
else
{
OracleConnection conn = getConnection();
getData(conn);
closeConnection(conn);
}
}
publicOracleConnection getConnection()
{
OracleConnection conn = null;
try
{
string connstr = "data source=orcl;userid=jde;password=jde;";
conn = new OracleConnection(connstr);
conn.Open();
}
catch (Exception e)
{
ScriptManager.RegisterStartupScript(this,this.GetType(),"","alert('建立数据库连接失败!');",true);
}
return conn;
}
public voidcloseConnection(OracleConnection conn)
{