1.写入BLOB string file_name = "D:\\20080523.jpg"; string conn_str = "Provider=OraOLEDB.Oracle.1;Password=agoodjob;Persist Security Info=True;User ID=ams;Data Source=ims;Extended Properties=";//Provider必須用OraOLEDB.Oracle.1 OleDbConnection cn = new OleDbConnection(conn_str); cn.Open(); OleDbCommand cmd = new OleDbCommand("UPDATE BLOB SET PHOTO = ? ",cn); cmd.Parameters.Add("PHOTO",OleDbType.Binary); FileStream fs = new FileStream(file_name, FileMode.OpenOrCreate, FileAccess.Read); byte[] MyData= new byte[fs.Length]; fs.Read(MyData, 0, System.Convert.ToInt32(fs.Length)); fs.Close(); cmd.Parameters["PHOTO"].Value = MyData; try { int result = cmd.ExecuteNonQuery(); if(result<1) { OleDbCommand cmd1 = new OleDbCommand(" INSERT INTO BLOB (PHOTO) VALUES ( ? )",cn); cmd1.Parameters.Add("PHOTO",OleDbType.Binary); cmd1.Parameters["PHOTO"].Value = MyData; result = cmd1.ExecuteNonQuery(); } } catch(Exception e1) { Page.RegisterStartupScript("",""); } finally { cn.Close(); } 2.读取BLOB string conn_str = "Provider=OraOLEDB.Oracle.1;Password=agoodjob;Persist Security Info=True;User ID=ams;Data Source=ims;Extended Properties=";//Provider必須用OraOLEDB.Oracle.1 OleDbDataAdapter da = new OleDbDataAdapter(); DataSet ds = new DataSet(); OleDbConnection conn = new OleDbConnection(conn_str); OleDbCommand cmd = new OleDbCommand("SELECT PHOTO FROM WEB_DB.USERS WHERE USER_ID = 1", conn); da.SelectCommand = cmd; cmd.Connection.Open(); da.Fill(ds); byte[] img = new byte[0]; DataRow dr; dr = ds.Tables[0].Rows[0]; if (!ds.Tables[0].Rows[0]["PHOTO"].ToString().Equals("")) { img = (byte[])dr["PHOTO"]; } Response.ContentType= "image/*"; Response.BinaryWrite (img); conn.Close();
c# 操作oracle blob,C#对Oracle BLOB字段的写入读取方法
最新推荐文章于 2021-04-10 12:18:41 发布