zoukankan      html  css  js  c++  java
  • C#对Oracle BLOB字段的写入读取方法

    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();
  • 相关阅读:
    Linux日常测试命令记录
    Python的加密方式:RSA加密
    Python踩坑系列之报错无“winrandom”模块:ModuleNotFoundError: No module named 'winrandom'
    Python踩坑系列之读取文件报错:OSError: [Errno 22] Invalid argument: 'u202aC:/Users/pc/Desktop/jspt.cer'
    Python的加密方式:MD5加密
    Python学习笔记:方法重写的理解
    7月底HTML/CSS学习笔记大纲
    css命名规范及项目文件目录
    css引入方式之外链式和导入式的异同点(面试题)
    CSS4种引入方式:行内,内联式,外部式,导入式
  • 原文地址:https://www.cnblogs.com/tohen/p/757193.html
Copyright © 2011-2022 走看看