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

  • 相关阅读:
    英语在线单词、语法检查工具
    Excel操作:导出到Excel并下载到web客户端
    五度圈 Circle of Fifths
    【算法】新浪微博笔试题:找出共有2个以上标签的用户对
    云计算虚拟化可能不是你的菜
    也来聊聊Erlang
    云计算数据存储之购买指南
    聊聊云计算 从OpenStack说起
    WC2022不知道在干什么记
    Silverlight调用WCF服务引用
  • 原文地址:https://www.cnblogs.com/tracy/p/2089200.html
Copyright © 2020-2023  润新知