C#环境下往oracle中的blob字段插入文件

本文介绍如何利用OracleClient库将文件内容插入到数据库中,具体包括文件流的获取、数据库连接建立、SQL语句执行及异常处理等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

添加引用            

using System.Data.OracleClient;

主要用到了两个类

System.Data.OracleClient.OracleConnection 表示一个到数据库的连接。此类无法继承。
System.Data.OracleClient.OracleCommand   表示针对数据库执行的 SQL 语句或存储过程。此类无法继承。

 

m_path为已经获取的文件名(full name)

表FJ_S中定义了三个字段XM_ID(varchar(50)),XM_NAME(varchar(50),FJ_FILE(blob)

 

        private bool InputRecordToOracle(string sFilePath

        {
            if (m_Path == null)
            {
                return false;
            }
            //获得文件流

            System.IO.FileStream pFS = new System.IO.FileStream(m_Path, FileMode.Open, FileAccess.Read);
            Byte[] pBuffer = new Byte[pFS.Length];//把文件转成Byte型二进制流
            pFS.Read(pBuffer, 0, pBuffer.Length);//把二进制流读入缓冲区
            pFS.Close();

            try
            {
                string sConnecStr = "Data Source=*;User ID=*;Password=*";
                OracleConnection pConn = new OracleConnection(sConnecStr);

                pConn.Open();
                OracleCommand pCmd = pConn.CreateCommand();
               
                pCmd.CommandText = "insert into FJ_S(XM_ID,XM_NAME,FJ_FILE) values('" + this.txtXMID.Text +
                    "','" + this.txtXMName.Text +"',:Doc)";   //正常sql语句插入数据库

                pCmd.Parameters.Add("Doc", OracleType.Blob, pBuffer.Length);
                pCmd.Parameters[0].Value = pBuffer;

 

                //针对 Connection 执行 SQL 语句并返回受影响的行数。
                pCmd.ExecuteNonQuery();
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
                return false;
            }
            return true;
          

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值