oracle数据库blob导出PDF
blob 数据库类型是存储4g以内的二进制文件流,是不会改变文件任何地方的,存入数据库之后,再获取出来也是一个很好的文件管理。一下是我写的一个导出数据库的代码,网上老是不到好用的。
源代码如下:
ArrayList lis = new ArrayList();
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
    Model.Contract info = new Model.Contract();
    info = (Model.Contract)dataGridView1.Rows[i].Tag;
    if (info != null && (bool)((DataGridViewCheckBoxCell)dataGridView1.Rows[i].Cells[0]).EditedFormattedValue)
        lis.Add(info);
}
if (lis != null && lis.Count > 1)
{
    MessageBox.Show("请选择一条合同修改!", "提示");
}
else if (lis != null && lis.Count == 1)
{
    Model.Contract info = (Model.Contract)lis[0];
    string fileName = info.CotrName;
    string saveFileName = "";
    SaveFileDialog saveDialog = new SaveFileDialog();
    saveDialog.DefaultExt = "pdf";
    saveDialog.Filter = "pdf文件|*.pdf";
    saveDialog.FileName = fileName;
    saveDialog.ShowDialog();
    saveFileName = saveDialog.FileName;
    if (saveFileName.IndexOf(":") < 0) return; //被点了取消
    string connString = "User ID=scott;Password=tiger;Data Source=orcl;";
    string strSQL = @"select
                    files
                    from com_contract  t
                    where t.cotrid = '{0}'";
    strSQL = string.Format(strSQL, info.CotrID);
    OracleLob lob = null;
    OracleConnection conn = new OracleConnection(connString);
    conn.Open();
    OracleCommand oraCmd = new OracleCommand(strSQL, conn);
    //DataReader提供一种从数据库读取行的只进流的方式。
    OracleDataReader reader = oraCmd.ExecuteReader();
    try
    {
        reader.Read();
        lob = reader.GetOracleLob(0);
        if (lob != null && lob.Length > 0)
        {
            FileStream fs = new FileStream(saveFileName, FileMode.Create);
            BinaryWriter w = new BinaryWriter(fs);
            byte[] pdf = new byte[lob.Length];
            BinaryReader read = new BinaryReader(lob);
            read.Read(pdf, 0, Convert.ToInt32(lob.Length));
            w.Write(pdf);
            w.Flush();
            w.Close();
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("下载合同PDF文件失败!" + ex.ToString(), "提示");
getsavefilename
    }
    finally
    {
        reader.Close();
        conn.Close();
    }
}
else
    MessageBox.Show("请选择下载合同!", "提示");
这个是pdf 的取出保存,其实excel、word、图片等都是可以的,视频不大于这个范围应该也是没有问题的。希望对大家有帮助。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。