利用数据库存取文件

[WebMethod(Description = "将文件以二进制流的形式保存到数据库中!")]
    public void saveDocuments(string filePath,string contractID)
    {
        ConnectDB();
        con.Open();
        try{
        FileStream fs = new FileStream(filePath,FileMode.OpenOrCreate,FileAccess.Read);
        byte[] blobValue = new byte[fs.Length];//文件在oracle数据库中存放为BLOB类型
        fs.Read(blobValue, 0, System.Convert.ToInt32(fs.Length));
        fs.Close();

        OracleCommand com = con.CreateCommand();
        string sql = "update fuel_contract_inf set contract=:conTract where contractid = '" + contractID + "'";
        com.CommandText = sql;
        com.CommandType = CommandType.Text;

        OracleParameter op = com.Parameters.Add("conTract", OracleType.Blob);
        op.Direction = ParameterDirection.Input;
        op.Value = blobValue;

        com.ExecuteNonQuery();
        }catch(Exception ex)
        {MessageBox.Show(ex.Message);}
        finally{con.Close();}
    }
    [WebMethod(Description = "将数据库中的二进制流数据读到一个文件中!")]
    public void readDocuments(string filePath,string sql)
    {
        ConnectDB();
        com.CommandText = sql;
        con.Open();
        try{
        OracleDataReader reader = com.ExecuteReader();
        if (reader.Read())
        {
            byte[] blobvalue = new byte[(reader.GetBytes(0, 0, null, 0, int.MaxValue))];
            reader.GetBytes(0, 0, blobvalue, 0, blobvalue.Length);
            FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);
            fs.Write(blobvalue, 0, blobvalue.Length);
            fs.Close();
        }
        reader.Close();
        }catch(Exception ex)
        {MessageBox.Show(ex.Message);}
        finally{con.Close();}
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值