您的位置:首页 > 数据库 > Oracle

C# 读取和写入oracle的blob字段的方法

2009-11-06 13:35 585 查看
//向数据库中写入

private void button1_Click(object sender, EventArgs e)
{
oracleConnection1.Open();

OracleCommand cmd = new OracleCommand("UPDATE TEST SET F2 =:blob where F1=:sn ", oracleConnection1);

cmd.Parameters.Add(new OracleParameter("blob",OracleType.Blob));
cmd.Parameters.Add(new OracleParameter("sn",OracleType.Int32));
FileInfo fi = new FileInfo("c://dos.doc");
FileStream fs = fi.OpenRead();
byte[] MyData = new byte[fs.Length];
fs.Read(MyData, 0, System.Convert.ToInt32(fs.Length));
fs.Close();
cmd.Parameters["blob"].Value = MyData;
cmd.Parameters["sn"].Value = 1;
try
{
int result = cmd.ExecuteNonQuery();
if (result < 1)
{
System.Console.WriteLine("插入数据错误!");
}
else
System.Console.WriteLine("插入数据成功!");
}
catch (Exception e1)
{
System.Console.WriteLine("插入数据错误!"+e1.ToString());
}
finally
{
oracleConnection1.Close();
}

}
//从数据库中读取
private void button2_Click(object sender, EventArgs e)
{
oracleConnection1.Open();
oracleCommand1.CommandText = "select * from TEST where f1=1";
OracleDataReader rs = oracleCommand1.ExecuteReader();
while (rs.Read())//读取数据,如果odr.Read()返回为false的话,就说明到记录集的尾部了
{
byte[] File=(byte[])rs["F2"];
FileInfo fi=new FileInfo("c://new.doc");
FileStream fs=fi.OpenWrite();
fs.Write(File,0,File.Length);
fs.Flush();
fs.Close();

}
rs.Close();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: