中国教育在线 中国教育网 加入收藏 设为首页

C#对Oracle数据库中图片的处理

http://itpx.eol.cn  来源:  作者:中国IT实验室收集整理  2011-05-30    

  由于oracle课程设计中涉及到图片的处理,测试了好长的时间和查阅了很多的资料,终于把这个问题解决了,在这和大家分享一下:

  一、图片保存到数据库

  oracle中一般保存图片的类型为blob,一般的步骤为:

  1,首先把图片转化为二进制(byte[])

  FileStream fs = new FileStream(filepath, FileMode.Open, FileAccess.Read);

  byte[] buffByte = new byte[fs.Length];

  fs.Read(buffByte, 0, Convert.ToInt32(fs.Length));

  fs.Close();

  2,把二进制保存到oracle数据库

  string strconn = "data source = oem;user id= exam; password=exam;persist security info=false;";

  OracleConnection conn = new OracleConnection(strconn);

  conn.Open();

  OracleCommand comm = new OracleCommand("addUser", conn);//存储过程adduser

  comm.CommandType = CommandType.StoredProcedure;

  comm.Parameters.Add("i_name", OracleType.VarChar, 50);

  comm.Parameters.Add("i_pic", OracleType.Blob);

  //comm.Parameters.Add("i_result", OracleType.Int32);

  comm.Parameters[0].Value = this.textBox2.Text;

  comm.Parameters[1].Value = buffByte;//这个为图片的二进制形式

  //comm.Parameters[2].Direction = ParameterDirection.Output;

  comm.ExecuteNonQuery();

  conn.Close();

  二、读取oracle数据库转化为图片

  步骤:

  1、读出二进制

  string strconn = "data source = oem;user id= exam; password=exam;persist security info=false;";

  OracleConnection conn = new OracleConnection(strconn);

  conn.Open();

  OracleCommand comm = new OracleCommand("selectUser", conn);

  comm.CommandType = CommandType.StoredProcedure;

  comm.Parameters.Add("flag", OracleType.Int32);

  comm.Parameters.Add("i_name", OracleType.VarChar, 50);

  comm.Parameters.Add("cur_out", OracleType.Cursor);

  comm.Parameters[0].Value = 2;

  comm.Parameters[1].Value = this.comboBox1.SelectedValue.ToString();

  comm.Parameters[2].Direction = ParameterDirection.Output;

  OracleDataAdapter da = new OracleDataAdapter(comm);

  DataSet ds = new DataSet();

  da.Fill(ds);

  conn.close();

推荐给好友    我要收藏    我要纠错    分享到

免责声明:

① 凡本站注明“稿件来源:中国教育在线”的所有文字、图片和音视频稿件,版权均属本网所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本站协议授权的媒体、网站,在下载使用时必须注明“稿件来源:中国教育在线”,违者本站将依法追究责任。

② 本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。

内容推荐
eol.cn简介 | 联系方式 | 网站声明 | 京ICP证140769号 | 京ICP备12045350号 | 京公网安备 11010802020236号
版权所有 北京中教双元科技集团有限公司 EOL Corporation
Mail to: webmaster@eol.cn