C# 把文件保存进orcale 并读取出来还原

这篇博客展示了如何使用C#将文件保存到Oracle数据库的BLOB字段中,以及如何从数据库中读取文件并还原。通过创建名为FILE_DB的数据表,存储文件ID、文件名和文件内容。然后提供两个方法,SaveFiletoDB用于存文件,download用于根据文件ID下载并恢复文件。示例中包含了按钮事件触发这些方法的代码。

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

新建保存数据的oracle数据表:

  CREATE TABLE "FILE_DB" 
   ( "FILEID" VARCHAR2(20 BYTE), 
"FILENAME" VARCHAR2(100 BYTE), 
"FILEBLOB" BLOB
   )


 //下面是把文件保存进oracle的代码

   //把文件到数据库
        public void  SaveFiletoDB(string filename)
        {
           
            OracleConnection ocn =   new OracleConnection(“连接字符");
            ocn.Open();
            string sql = "insert into FILE_DB (FILEID,FILENAME,FILEBLOB) values (:FILEID,:FILENAME,:FILEBLOB)" ;
            OracleCommand cmd = new OracleCommand(sql, ocn);
            FileStream fs = File.OpenRead(filename);
            byte[] b = new byte[fs.Length];
            fs.Read(b, 0, b.Length);
            fs.Close();
            cmd.Parameters.Add(":FILEID", OracleDbType.Varchar2).Value = "test12";
            cmd.Parameters.Add(":FILENAME", OracleDbType.Varchar2).Value = filename;
            cmd.Parameters.Add(":FILEBLOB", OracleDbType.Blob).Value = b;
            cmd.ExecuteNonQuery();
            ocn.Close();
        }
 


 //从oracle读出并还原文件

        public string download(string fileid)
        {


           OracleConnection ocn =   new OracleConnection(“连接字符");

      ocn.Open();
            OracleDataAdapter odp = new OracleDataAdapter("select * from FILE_DB where FILEID='" + fileid + "'", ocn);
            DataTable odt = new DataTable();
             odp.Fill(odt);
           //  DataTable odt = o_ac.GetDatatable("select * from FILE_DB where FILEID='" + fileid + "'");
             byte[] objFileBuffer = (byte[])odt.Rows[0]["FILEBLOB"];
             FileStream objFs;
             BinaryWriter objBw;
             string fileName = odt.Rows[0]["FILENAME"].ToString();//文件名
             objFs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write);
             objBw = new BinaryWriter(objFs);
             objBw.Write(objFileBuffer, 0, objFileBuffer.Length);
             objBw.Flush();
             objBw.Close();
             objFs.Close();
             return fileName;
       
        }


//调用代码

 protected void Button1_Click(object sender, EventArgs e)
        {
            SaveFiletoDB(@"d:\123.ppt");
        }


        protected void Button2_Click(object sender, EventArgs e)
        {
            download("test12");
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值