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();

  • 相关阅读:
    【Windows socket+IP+UDP+TCP】网络基础
    【我所认知的BIOS】—> uEFI AHCI Driver(8) — Pci.Read()
    Unity3D十款最火的的插件推荐
    静态路由解决双外卡,PC做路由器的实现
    00096_Properties类
    TensorFlow2_200729系列---4、手写数字识别理论
    损失函数基础知识总结
    为什么选择onehot编码(总结)
    TensorFlow2_200729系列---3、梯度下降求简单线性回归实例
    numpy生成随机数据实例
  • 原文地址:https://www.cnblogs.com/tracy/p/2089200.html
Copyright © 2011-2022 走看看