using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OracleClient;
using System.IO;
namespace TestOraclBlob
{
public partial class Form1 : Form
{
OracleConnection conn;
public Form1()
{
InitializeComponent();
string strCon = "Data Source=orcl;Persist Security Info=True;User ID=wcq;Password=wcq123;Unicode=True;";
conn = new OracleConnection(strCon);
}
//写入数据库
private void button1_Click(object sender, EventArgs e)
{
OracleCommand cmd = new OracleCommand("", conn);
string path = @"C:UserslenovoDesktop 1.pdf";
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
Byte[] fsByte = new byte[fs.Length]; //把图片转成 Byte型 二进制流
fs.Read(fsByte, 0, fsByte.Length); //把二进制流读入缓冲区
fs.Close();
cmd.CommandText = "insert into Student(id,name,storeblob) values(1,'aa',:zp)";
cmd.Parameters.Add(":zp", OracleType.BFile, fsByte.Length);
cmd.Parameters[0].Value = fsByte;
conn.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("插入成功!");
conn.Close();
}
private void button2_Click(object sender, EventArgs e)
{
string path = @"C:UserslenovoDesktop2.pdf";
DataTable dt = new DataTable();
OracleDataAdapter adapter = new OracleDataAdapter("select storeBlob from student", conn);
adapter.Fill(dt);
Byte[] filebyte = (byte[])(dt.Rows[1][0]);
FileStream fs = new FileStream(path, FileMode.Create);
fs.Write(filebyte, 0, filebyte.GetLength(0));
fs.Close();
MessageBox.Show("读取成功!");
}
}
}