`
lveyo
  • 浏览: 915432 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

 
分享到:
评论

相关推荐

    C#访问oracle数据库类,带blob字段读写

    以上就是使用C#访问Oracle数据库并处理Blob字段的基本方法。在实际开发中,还需要考虑错误处理、事务管理、连接池等高级概念,以确保代码的健壮性和性能。同时,为了安全起见,建议使用参数化查询来防止SQL注入攻击...

    oracle中读取blob字段.doc

    在Java应用程序中读取Oracle数据库中的BLOB字段通常涉及到几个步骤:建立数据库连接、执行查询语句、获取结果集并从中提取BLOB数据,最后将这些数据写入到文件中。 ##### 3.1 加载Oracle驱动 在Java程序中使用...

    批量导出ORACLE数据库BLOB字段生成文件

    本教程将详细讲解如何批量导出Oracle数据库中的BLOB字段并生成文件,适用于需要定期或一次性处理大量图片或其他BLOB数据的场景。 首先,确保你已经在本地安装了Oracle客户端。Oracle客户端提供了SQL*Plus和其他工具...

    C# Oracle Blob格式的文档上传与下载

    本话题主要探讨了如何使用C#语言来实现Oracle数据库中的Blob类型字段进行文档的上传与下载操作。以下是对这一主题的详细解释。 首先,Oracle数据库中的Blob(Binary Large Object)类型用于存储大量的二进制数据,...

    sql server中的image类型的数据导出到oracle的clob字段中

    我们使用了 Java 语言和 JDBC 驱动程序来实现数据的导出,并将 Image 类型数据写到文件中,然后将文件中的数据读取出来,并将其设置到 Oracle 的 CLOB 字段中。这种方法可以帮助我们实现不同数据库管理系统之间的...

    oracle LongRaw 转 Blob

    在C#中,Oracle提供了Oracle.DataAccess.Client库来操作Oracle数据库,包括LongRaw和Blob字段的转换。以下是一个简单的步骤概述: 1. **连接数据库**:使用OracleConnection类建立到Oracle数据库的连接。需要提供...

    基于.NET的Oracle BLOB数据高效存取方法.pdf

    文章作者李良、柴毅和王道斌在2008年的《计算机工程》杂志上阐述了如何在.NET平台上,利用C#语言和ADO.NET框架,实现对Oracle数据库BLOB数据的高效存取。 首先,文章指出,随着.NET技术的发展,越来越多的开发者...

    图片BASE64加密保存到数据库Blob类型中(放入数据库,并取出生成图片)

    Blob字段允许我们存储非结构化的数据,与普通的数值、字符串等字段不同。 3. **图片加密**:在描述中提到的“加密”可能是指BASE64编码过程,但这并不是传统意义上的加密。BASE64本质上是一种编码,而不是加密,...

    WindowsFormsGetBlob.zip

    6. **插入BLOB数据**:在插入操作中,我们首先将二进制数据加载到内存中的`OracleBlob`对象,然后将其作为参数传递给`OracleCommand`的`ExecuteNonQuery`方法。这通常涉及到使用`OracleParameter`对象来设置参数值。...

    SqlServer与Oracle保存与读取图片二进制流

    - **创建表结构**:在SQL Server中,可以创建一个包含BLOB字段的表,如`ImagesTable`,包含一个名为`ImageData`的`varbinary(max)`字段,用于存储图片的二进制数据。 - **保存图片**:通过读取图片文件并将其转换...

    上传图片到oracle

    Oracle提供了一系列的函数和方法来操作BLOB字段,例如INSERT、UPDATE、SELECT等,以便于读取、写入和处理这些大型数据。 二、C#.NET与Oracle数据库交互 在C#.NET环境中,我们可以使用Oracle Data Provider for .NET...

    Oracle学习的总结

    在C#中,可以使用OracleClient或ODP.NET驱动来操作Blob字段,包括读取、写入和更新Blob数据。 3. **Oracle 11g新特性**: - 表分区增强:支持更灵活的分区策略,提高查询性能。 - Advanced Compression:提供了...

    Oracle导入导出图片及Excel(标注:没有源代码!)

    3. **批量导出图片**:导出Oracle中的图片则需要读取BLOB数据并写入文件系统。可以编写PL/SQL过程或者使用Java、C#等编程语言,调用Oracle的JDBC或ODBC驱动,获取BLOB数据并保存为图片文件。 4. **Excel数据交互**...

    OperationOracleBlob.rar_Oracle数据库_C#_

    接下来,为了读取和写入Blob字段,我们首先需要建立一个OracleConnection对象,并用有效的数据库连接字符串初始化它。然后,创建一个OracleCommand对象,设置SQL查询或存储过程,例如: ```csharp using Oracle....

    C#与数据库的连接

    C#提供了多种方法来与各种类型的数据库进行交互,包括SQL Server、MySQL、Oracle等。本章将深入探讨C#与数据库连接的相关知识点,以及如何进行数据库的读取、写入、事务处理和安全性配置。 首先,我们要了解`Ch0801...

    C#中怎么用数据库读和存储图片的程序

    从数据库读取图片,我们可以查询BLOB字段并将其写入文件。这里有一个示例: ```csharp SqlCommand selectCommand = new SqlCommand("SELECT ImageData FROM Images WHERE ImageID = @ImageID", connection); ...

    Oracle照片导入

    6. **照片显示**:对于已存储的照片,可以通过查询数据库获取BLOB字段的数据,然后在网页或桌面应用中显示。可以使用Response.BinaryWrite方法将二进制数据写入HTTP响应,或者在客户端使用DataURI方案直接显示图片。...

    PB-数据库保存图片并在Datawindow中显示

    对于图片数据,DataWindow支持BLOB字段,可以用来显示存储在数据库中的图片。 4. **picture.pbl**:这是一个PowerBuilder库文件,可能包含了用于处理图片显示的用户对象或者定制的DataWindow对象。PBL(Power...

Global site tag (gtag.js) - Google Analytics