教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> Oracle >> 开发技术 >> .net中二进制大对象的操作 RSS订阅
.net中二进制大对象的操作
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   

  public static void WriteLob(string table_name,string table_id,int id,int column,string content)
     {
      OracleConnection myCn = new OracleConnection(strConn);   
      OracleCommand myCmd = new OracleCommand();
      try
      {
       myCn.Open();    
      }
      catch(System.Data.OracleClient.OracleException e)
      {
       throw new Exception(e.Message);
      }   
      OracleTransaction myTrans = myCn.BeginTransaction();
      try
      {           
       myCmd.Connection = myCn;    
       myCmd.Transaction = myTrans;
       myCmd.CommandText = "SELECT * FROM "+ table_name +" where "+ table_id +" = "+ id +" FOR UPDATE";
       OracleDataReader reader = myCmd.ExecuteReader();
       using(reader)
       {
        reader.Read();
        OracleLob CLOB = reader.GetOracleLob(column);//column为lob类型所在列
        Encoding UTF8 = Encoding.UTF8;        //使用UTF-8进行编码
        byte[] buffer = UTF8.GetBytes(content);
        if(buffer.Length % 2 ==0)
         CLOB.Write(buffer, 0, buffer.Length);  //这里的参数必须为偶数
        else
         CLOB.Write(buffer, 0, (buffer.Length - 1));
        //CLOB.Position = 0;
        myTrans.Commit();
       }
      }
      catch(System.Data.OracleClient.OracleException e)
      {   
       myTrans.Rollback();
       throw new Exception(e.Message);
      }
      finally
      {
       myCmd.Dispose();
       myCn.Close();
      }
     }
     public static string ReadLob(string table_name,string table_id,int id,int column)
     {
      OracleConnection myCn = new OracleConnection(strConn);   
      OracleCommand myCmd = new OracleCommand();
      try
      {
       myCn.Open();    
      }
      catch(System.Data.OracleClient.OracleException e)
      {
       throw new Exception(e.Message);
      }   
      OracleTransaction myTrans = myCn.BeginTransaction();
      try
      {           
       myCmd.Connection = myCn;    
       myCmd.Transaction = myTrans;
       myCmd.CommandText = "SELECT * FROM "+ table_name +" where "+ table_id +" = "+ id +" FOR UPDATE";
       OracleDataReader reader = myCmd.ExecuteReader();
       using(reader)
       {
        reader.Read();
        OracleLob CLOB = reader.GetOracleLob(column);
        int[] content = new int[(int)CLOB.Length];
        byte[] buffer = new byte[(int)CLOB.Length];
         
        for(int i = 0;i<(int)CLOB.Length;i++)
        {
         content = CLOB.ReadByte();
         buffer = (byte)content;
        }
   
        Encoding utf8 = Encoding.UTF8;
        
        string final = utf8.GetString(buffer);
        myTrans.Commit();
        return final;
       }
      }
      catch(System.Data.OracleClient.OracleException e)
      {   
       myTrans.Rollback();
       throw new Exception(e.Message);
      }
      finally
      {
       myCmd.Dispose();
       myCn.Close();
      }
     }

来源:upschool.com.cn
作者:
关键字:.net中二进制,操作
发表日期:2007-1-6 1:06:36

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:CHAR,VARCHAR,VARCHAR2类型的区别与使用   下一篇:常用数据库 JDBC 连接写法全攻略


2008-12-3 4:48:33
本文的相类似文章
  • Java 中对文件的读写操作之比较
  • VB 获取操作系统版本号
  • VB 获得操作系统的语言类型
  • 注册表操作函数集
  • 操作系统的木马常识和预防技巧
  • 用注册表为操作系统砌九堵安全墙
  • 必看:重装操作系统的20条原则
  • 木马记录键盘操作发送给黑客
  • Oracle10g对回滚操作时间的准确评估
  • 用触发器生成数据库表的数据操作日志
  • 在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com