C#写入和读取数据库blob字段代码

原创 2012年03月29日 14:36:20

读取本地文件,存入数据库blob字段。

try
            {
                OpenFileDialog openFileDialog = new OpenFileDialog();
                openFileDialog.Filter = "*.*|*.*";
                openFileDialog.CheckFileExists = true;
                openFileDialog.Title = "选择上传的文件";

                if (openFileDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK)
                {
                    return;
                }

                FileStream fileStream = new FileStream(
                    openFileDialog.FileName, FileMode.Open, FileAccess.Read);
      
		byte[] fileData = new byte[fileStream.length + 1];	
                fileStream.Read(fileData, 0, (int)fileStream.Length);

                string sql = "select * from TABLE_NAME where id = '" + id + "'";
                DataSet ds = OA.RsGet(sql, null);
                DataRow row;

                if (ds.Tables[0].Rows.Count > 0)
                {
                    row = ds.Tables[0].Rows[0];
                }
                else
                {
                    row = ds.Tables[0].NewRow();
                    
                    row["ID"] = Guid.NewGuid().ToString("N");
		    ds.Tables[0].Rows.Add(row);
		}
                row["FILE"] = fileData;
                row["otherField"] = roadWidth;
                
                if (OA.RsUpdate(ds) > 0)
                {
                    MessageBox.Show("保存成功!");
                }

            }
            catch(Exception exc)
            {
                MessageBox.Show("保存出错!请检查数据。\n" + exc.Message);
            }
         

读取数据库blob字段,存成本地文件。

/// <summary>
        /// 读取ORACLEBLOB字段到文件,返回文件名  Add by ZhaoYong  |2012-03-21|
        /// </summary>
        /// <param name="idValue">索引值</param>
        /// <param name="idField">索引字段名称</param>
        /// <param name="table">要查询的表名称</param>
        /// <param name="blobField">存放文件的字段名称</param>
        /// <param name="outFileFullName">保存到本地的文件名</param>
        /// <returns></returns>
        public static bool ReadBlobToFile(string idValue, string idField, string table, string blobField, string outFileFullName)
        {
            int PictureCol = 0;

            outFileFullName = outFileFullName.Trim();

            try
            {
                OracleCommand cmd = new OracleCommand("Select " + blobField + " From " + table +
                    " Where " + idField + "='" + idValue + "'", OracleDb.OracleDb.Connection);
                
                OracleDataReader myReader = cmd.ExecuteReader();
                myReader.Read();

                if (myReader.HasRows == false)
                {
                    return false;
                }

                byte[] b = new byte[myReader.GetBytes(PictureCol, 0, null, 0, int.MaxValue) - 1];
                myReader.GetBytes(PictureCol, 0, b, 0, b.Length);
                myReader.Close();

                System.IO.FileStream fileStream = new System.IO.FileStream(
                    outFileFullName, System.IO.FileMode.Create, System.IO.FileAccess.Write);
                fileStream.Write(b, 0, b.Length);
                fileStream.Close();
            }
            catch
            {
                return false;
            }

            return true;
        }







版权声明:欢迎评论和转载,转载请注明来源。

C# 读取和写入oracle的blob字段的方法

 //向数据库中写入        private void button1_Click(object sender, EventArgs e)        {            oracleC...
  • wjw806
  • wjw806
  • 2009年11月06日 13:35
  • 5136

blob与string类型的相互转换

// blob内存放的是字节数组 // String 的getBytes方法获得该字符串的字节数组(注意编码),然后存入blob即可 String blobStr = "blob"; by...
  • CociJava
  • CociJava
  • 2016年08月24日 15:13
  • 13493

如何读取Oracle的BLOB字段里的文件

 下载源码:http://download.csdn.net/source/589896  使用ORADBI读取存储在BLOB字段里的多个文件,并还原到指定的路径下。下面是完整的代码: // // r...
  • lanwilliam
  • lanwilliam
  • 2008年08月28日 08:27
  • 571

mybatis 读取blob数据

mybatis 读取blob数据 mybatis读取blob数据过程: 1、从数据库中读出blob数据类型,用pojo中的byte[]接收。 2、把文件保存成文件(或者变成base64也行)。 ...
  • wild46cat
  • wild46cat
  • 2016年11月08日 11:59
  • 3886

在C#中存储Blob类型的数据,

我现在在Oracle中写了个存储过程如下: create or replace procedure update_student_clob(      v_cmid     in number,   ...
  • enjsky
  • enjsky
  • 2005年07月27日 19:44
  • 1416

C# 单张图片的保存[BLOB保存与文件上传两种方式]与展示

经常会遇到图片的保存这个问题,图片的保存分为两种,一是直接把图片存到数据库里存为BLOB格式,另一种是把图片上传到程序目录特定的文件夹下面,然后把路径保存起来,当然保存方式不同,展示的方式也就不同. ...
  • sky08050025
  • sky08050025
  • 2011年07月18日 11:28
  • 4595

Oracle Blob

https://www.cnblogs.com/chenqingwei/p/4046177.html CREATE OR REPLACE FUNCTION C2B (b IN CLOB de...
  • Lyncai
  • Lyncai
  • 2017年12月26日 11:54
  • 29

二进制文件(BLOB类型操作)的插入

drop table wiler_lob;create table wilerlob (       id number (5) not null,       image blob not null...
  • wiler
  • wiler
  • 2007年03月12日 16:17
  • 363

C#,BLOB读取操作

  • 2013年04月07日 09:45
  • 19KB
  • 下载

C#读取Mysql blob字段

开发环境:Windows XP Professional SP3、VS2008、Winform、MySQL5.0、MySQL.Data.dll 6.2.3.0 1、从硬盘上读取一图片,将...
  • config_man
  • config_man
  • 2011年01月07日 17:35
  • 9969
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#写入和读取数据库blob字段代码
举报原因:
原因补充:

(最多只允许输入30个字)