C# 连接 Oracle,读取Blob字段数据,存到文件中去,包括pdf等等

时间:2024-04-29 01:41:29

代码如下,记得引入Oracle的dll

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OracleClient;
using System.Data.SqlClient;
using System.IO; namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void simpleButton1_Click(object sender, EventArgs e)
{
var mServiceName = "20.";
var mUserName = "k_";
var mPsw = "z!";
string connstring = string.Format("Data Source={0};User Id={1};Password={2}", mServiceName, mUserName, mPsw);
OracleConnection conn = new OracleConnection(connstring);
var a = "SELECT DOC_NT FROM dd WHERE DOT_ID='6ff157b3-a482-4731-935d-782af8ca60cd'";
OracleCommand cmd = new OracleCommand(a, conn);
try
{
conn.Open();
OracleDataReader sdr = cmd.ExecuteReader();
sdr.Read();
var blob = new Byte[(sdr.GetBytes(, , null, , int.MaxValue))];
sdr.GetBytes(, , blob, , blob.Length);
sdr.Close();
conn.Close();
var fs = new FileStream("c:\\abd.pdf", FileMode.Create, FileAccess.Write);
fs.Write(blob, , blob.Length);
fs.Close(); }
catch (System.Exception ex)
{
conn = null;
throw ex;
}
finally
{
if (conn != null && conn.State == System.Data.ConnectionState.Open)
conn.Close();
} }
}
}