设为首页 收藏本站
查看: 639|回复: 0

[经验分享] C#对Oracle BLOB字段的写入读取方法

[复制链接]

尚未签到

发表于 2016-7-31 19:32:30 | 显示全部楼层 |阅读模式
1.写入BLOB

   string file_name = "D:\\20080523.jpg";
   string conn_str = "Provider=OraOLEDB.Oracle.1;Password=agoodjob;Persist Security Info=True;User ID=ams;Data Source=ims;Extended Properties=";//Provider必須用OraOLEDB.Oracle.1
   OleDbConnection cn = new OleDbConnection(conn_str);
   cn.Open();

   OleDbCommand cmd = new OleDbCommand("UPDATE BLOB SET PHOTO = ? ",cn);
   cmd.Parameters.Add("PHOTO",OleDbType.Binary);  
  
   FileStream fs = new FileStream(file_name, FileMode.OpenOrCreate, FileAccess.Read);
   byte[] MyData= new byte[fs.Length];
   fs.Read(MyData, 0, System.Convert.ToInt32(fs.Length));
   fs.Close();

   cmd.Parameters["PHOTO"].Value = MyData;
   try
   {
    int result = cmd.ExecuteNonQuery();
    if(result<1)
    {
     OleDbCommand cmd1 = new OleDbCommand(" INSERT INTO BLOB (PHOTO) VALUES ( ? )",cn);
     cmd1.Parameters.Add("PHOTO",OleDbType.Binary);
     cmd1.Parameters["PHOTO"].Value = MyData;
     result = cmd1.ExecuteNonQuery();
    }
   } 
   catch(Exception e1)
   {
    Page.RegisterStartupScript("","<script language='javascript'>alert('"+e1.Message+"')</script>");
   }
   finally
   {
    cn.Close();
   }

2.读取BLOB

   string conn_str = "Provider=OraOLEDB.Oracle.1;Password=agoodjob;Persist Security Info=True;User ID=ams;Data Source=ims;Extended Properties=";//Provider必須用OraOLEDB.Oracle.1
  
   OleDbDataAdapter da = new OleDbDataAdapter();
   DataSet ds = new DataSet();
   OleDbConnection conn = new OleDbConnection(conn_str);
   OleDbCommand cmd = new OleDbCommand("SELECT PHOTO FROM WEB_DB.USERS WHERE USER_ID = 1", conn);
   da.SelectCommand = cmd;
   cmd.Connection.Open();
   da.Fill(ds);

   byte[] img = new byte[0];
   DataRow dr;
   dr = ds.Tables[0].Rows[0];

   if (!ds.Tables[0].Rows[0]["PHOTO"].ToString().Equals(""))
   {
    img =  (byte[])dr["PHOTO"];
   }

   Response.ContentType= "image/*";
   Response.BinaryWrite (img);

   conn.Close();

 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-251564-1-1.html 上篇帖子: Oracle中查询运行的job的方法 下篇帖子: 工作中遇到的几个Oracle小问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表