ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)

时间:2021-02-15 03:58:58

这里我用的是ORACLE9I, 建立了表C_EMP1_T,结构如下:
create table C_EMP1_T
(
  EMP_ID         NUMBER(20) not null,    //用户ID
  EMP_NO         VARCHAR2(20),        //用户编号
  EMP_DESC       LONG,                        //用户简历    
  USED_DATE      DATE,                        //注册日期
  EMP_IC_MAC     RAW(50),                //用户IC卡的MAC号
  EMP_ADMIN_FLAG CHAR(1),        //管理员标志
  EMP_PICTURE    BLOB                    //用户图像
)
其中INSERT/UPDATE/SELECT的代码分别如下(DELETE比较简单就省略了,其中SELECT和UPDATE的条件都是记录的rowid):
首先BLOB字段是存图片的,所以有一个过程是把图片传到服务器上:
    先在aspx上加:
<form id="Form1" enctype="multipart/form-data" method="post" runat="server">
    <input id="IoFile" runat="server" type="file"> <FONT face="宋体">下一步→</FONT>
       <asp:Button id="btunload" runat="server" Text="上传"></asp:Button>
</form>
和代码:

ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)     private   void  btunload_Click( object  sender, System.EventArgs e)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)        
{
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            btunload.Enabled 
= false;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
//获得文件名称 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
            
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)          
string tempfilename = IoFile.PostedFile.FileName;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)           
//注: loFile.PostedFile.FileName 返回的是 通过文件对话框选择的文件名,这之中包含了文件的目录信息
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
          tempfilename = Path.GetFileName ( tempfilename);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
if (tempfilename.Substring(tempfilename.Length-4,4== ".bmp")
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
{
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)          
//去掉目录信息,返回文件名称
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)          
//判断上传目录是否存在,不存在就建立 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
                string tempDirectory = "D:/WWWROOT/MYWEB/dbtest/Image/";
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)          
if ( ! Directory.Exists ( tempDirectory ) )  
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)               Directory.CreateDirectory ( tempDirectory ) ;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)          
//上传文件到服务器 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
                string tempPath = tempDirectory+tempfilename;//得到上传目录及文件名称 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
                IoFile.PostedFile.SaveAs ( tempPath );
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Label1.Text 
= "<img src='image/"+tempfilename+"'>";
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Session[
"filename"= tempfilename;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            }

ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
else
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
{
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Label1.Text 
= "错误的文件类型";
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            }

ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            btunload.Enabled  
= true;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
/*  
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)   ' 获得并显示上传文件的属性 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)  FileName.Text = lstrFileName
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)   ' 获得文件名称
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)  FileType.Text = loFile.PostedFile.ContentType 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)   ' 获得文件类型
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)  FileLength.Text = cStr ( loFile.PostedFile.ContentLength ) 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)   ' 获得文件长度
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)  FileUploadForm.visible = false 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)  AnswerMsg.visible = true
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)   ' 显示上传文件属性
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)  End sub 
*/

ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)        }


INSERT:

ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)private   void  BtInsert_Click( object  sender, System.EventArgs e)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)        
{
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            OracleConnection Ocon 
= new  OracleConnection("user id=cmes;data source=mes;password=cmes");
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocon.Open(); 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
//OracleCommand Ocom = new OracleCommand("insert into c_emp1_t (EMP_ID,EMP_NO,EMP_DESC,USED_DATE,EMP_IC_MAC,EMP_ADMIN_FLAG,EMP_PICTURE)values(:emp_id,:emp_no,:emp_desc,:emp_date,:emp_ic_mac,:flag,:picture)",Ocon);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
            OracleCommand Ocom = new OracleCommand("insert into c_emp1_t (EMP_ID,EMP_NO,EMP_DESC,USED_DATE,EMP_IC_MAC,EMP_ADMIN_FLAG)values(:emp_id,:emp_no,:emp_desc,:emp_date,:emp_ic_mac,:flag)",Ocon);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters.Add(
new OracleParameter("emp_id",OracleType.Number));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters.Add(
new OracleParameter("emp_no",OracleType.VarChar));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters.Add(
new OracleParameter("emp_desc",OracleType.LongVarChar));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters.Add(
new OracleParameter("emp_date",OracleType.DateTime));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters.Add(
new OracleParameter("flag",OracleType.Char));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters.Add(
new OracleParameter("emp_ic_mac",OracleType.Raw));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
//Ocom.Parameters.Add(new OracleParameter("picture",OracleType.Blob));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
            Ocom.Parameters["emp_id"].Value = Convert.ToDecimal(tbempid.Text);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters[
"emp_no"].Value = tbempno.Text;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters[
"emp_desc"].Value = tbempdesc.Text;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
string empdate = tbempdate.Text;// yyyymmdd
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
            Ocom.Parameters["emp_date"].Value =    new DateTime(Convert.ToInt32(empdate.Substring(0,4)),Convert.ToInt32(empdate.Substring(4,2)),Convert.ToInt32(empdate.Substring(6,2)) );
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
if (rb1.Checked) 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.Parameters[
"flag"].Value = '1';
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
if (rb2.Checked) 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.Parameters[
"flag"].Value = '2';
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
if (rb3.Checked) 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.Parameters[
"flag"].Value = '3';
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters[
"emp_ic_mac"].Value = setraw(tbicmac.Text);            
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.ExecuteNonQuery();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
/*由与有字段long和blob一起,所以不能在一个insert语句中进行插入,单独insert是成功的
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            OracleConnection Ocon = new  OracleConnection("user id=cmes;data source=mes;password=cmes");
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocon.Open(); 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            OracleCommand Ocom = new OracleCommand("insert into c_emp1_t (EMP_ID,EMP_PICTURE)values(:emp_id,:picture)",Ocon);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters.Add(new OracleParameter("emp_id",OracleType.Number));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters.Add(new OracleParameter("picture",OracleType.Blob));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters["emp_id"].Value = Convert.ToDecimal(tbempid.Text);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            FileStream reader = new FileStream("D:/WWWROOT/MYWEB/dbtest/Image/002.bmp",FileMode.Open);//在iis中不用用“\”目录结构应该是“/”
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            byte[] tempimage = new byte[reader.Length];
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            reader.Read(tempimage,0,tempimage.Length);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            //OracleLob tempLob=OracleLob.Null;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            //tempLob.BeginBatch(OracleLobOpenMode.ReadWrite);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            //tempLob.Write(tempimage,0,tempimage.Length);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            //tempLob.EndBatch();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            reader.Close();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters["picture"].Size = tempimage.Length;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            //tempimage.CopyTo(Ocom.Parameters["picture"].Value,0);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters["picture"].Value = tempimage;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.ExecuteNonQuery();
*/

ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
string myfilename = Convert.ToString(Session["filename"]);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
if (myfilename != "")
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
{
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.Parameters.Clear();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.CommandText 
= "update c_emp1_t SET EMP_PICTURE = :PICTURE WHERE EMP_ID= :EMP_ID ";
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.Parameters.Add(
new OracleParameter("EMP_ID",OracleType.Number));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.Parameters.Add(
new OracleParameter("PICTURE",OracleType.Blob));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.Parameters[
"EMP_ID"].Value = Convert.ToDecimal(tbempid.Text);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                FileStream reader 
= new FileStream("D:/WWWROOT/MYWEB/dbtest/Image/"+myfilename,FileMode.Open);//在iis中不用用“\”目录结构应该是“/”
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
                byte[] tempimage = new byte[reader.Length];
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                reader.Read(tempimage,
0,tempimage.Length);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                reader.Close();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.Parameters[
"PICTURE"].Size = tempimage.Length;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.Parameters[
"PICTURE"].Value = tempimage;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.ExecuteNonQuery();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Session[
"filename"= "";
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            }

ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocon.Close();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)        }

UPDATE:
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)private   void  btUpdate_Click( object  sender, System.EventArgs e)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)        
{
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            OracleConnection Ocon 
= new  OracleConnection("user id=cmes;data source=mes;password=cmes");
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocon.Open(); 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)    
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            OracleCommand Ocom 
= new OracleCommand("UPDATE c_emp1_t SET EMP_ID= :emp_id,EMP_NO= :emp_no,EMP_DESC= :emp_desc,USED_DATE= :emp_date,EMP_IC_MAC= :emp_ic_mac,EMP_ADMIN_FLAG= :flag WHERE ROWID = :MYROWID",Ocon);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters.Add(
new OracleParameter("MYROWID",OracleType.RowId));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters.Add(
new OracleParameter("emp_id",OracleType.Number));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters.Add(
new OracleParameter("emp_no",OracleType.VarChar));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters.Add(
new OracleParameter("emp_desc",OracleType.LongVarChar));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters.Add(
new OracleParameter("emp_date",OracleType.DateTime));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters.Add(
new OracleParameter("flag",OracleType.Char));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters.Add(
new OracleParameter("emp_ic_mac",OracleType.Raw));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters[
"MYROWID"].Value = TBROWID.Text;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters[
"emp_id"].Value = Convert.ToDecimal(tbempid.Text);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters[
"emp_no"].Value = tbempno.Text;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters[
"emp_desc"].Value = tbempdesc.Text;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
string empdate = tbempdate.Text;// yyyymmdd
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
            Ocom.Parameters["emp_date"].Value =    new DateTime(Convert.ToInt32(empdate.Substring(0,4)),Convert.ToInt32(empdate.Substring(4,2)),Convert.ToInt32(empdate.Substring(6,2)) );
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
if (rb1.Checked) 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.Parameters[
"flag"].Value = '1';
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
if (rb2.Checked) 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.Parameters[
"flag"].Value = '2';
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
if (rb3.Checked) 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.Parameters[
"flag"].Value = '3';
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters[
"emp_ic_mac"].Value = setraw(tbicmac.Text);            
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.ExecuteNonQuery();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
string myfilename = Convert.ToString(Session["filename"]);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
if (myfilename != "")
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
{
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.Parameters.Clear();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.CommandText 
= "update c_emp1_t SET EMP_PICTURE = :PICTURE WHERE EMP_ID= :EMP_ID ";
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.Parameters.Add(
new OracleParameter("EMP_ID",OracleType.Number));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.Parameters.Add(
new OracleParameter("PICTURE",OracleType.Blob));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.Parameters[
"EMP_ID"].Value = Convert.ToDecimal(tbempid.Text);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                FileStream reader 
= new FileStream("D:/WWWROOT/MYWEB/dbtest/Image/"+myfilename,FileMode.Open);//在iis中不用用“\”目录结构应该是“/”
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
                byte[] tempimage = new byte[reader.Length];
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                reader.Read(tempimage,
0,tempimage.Length);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                reader.Close();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.Parameters[
"PICTURE"].Size = tempimage.Length;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.Parameters[
"PICTURE"].Value = tempimage;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Ocom.ExecuteNonQuery();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                Session[
"filename"= "";
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            }

ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocon.Close();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)        }
SELECT(由于图片是直接向客户端输出,所以需要另一个页面来输入图片):
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)private   void  btselect_Click( object  sender, System.EventArgs e)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)        
{
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
if (TBROWID.Text.Length < 18)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
{
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                TBROWID.Text 
= "请输入正确的ROWID";
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
return;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            }

ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            OracleConnection Ocon 
= new  OracleConnection("user id=cmes;data source=mes;password=cmes");
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocon.Open(); 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            OracleCommand Ocom 
= new OracleCommand("select EMP_ID,EMP_NO,EMP_DESC,USED_DATE,EMP_IC_MAC,EMP_ADMIN_FLAG,EMP_PICTURE from c_emp1_t where rowid = :emprowid",Ocon);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters.Add(
new OracleParameter("emprowid",OracleType.RowId));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters[
"emprowid"].Value = TBROWID.Text;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            OracleDataReader reader 
= Ocom.ExecuteReader();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
while (reader.Read())
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
{
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
if (!(reader.IsDBNull(0)))
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                tbempid.Text 
= Convert.ToString( reader.GetDecimal(0));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
if (!(reader.IsDBNull(1)))
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                tbempno.Text 
= reader.GetString(1);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
if (!(reader.IsDBNull(2)))
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                tbempdesc.Text 
= reader.GetString(2);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
if (!(reader.IsDBNull(3)))
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
{
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    DateTime DT 
= reader.GetDateTime(3);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    tbempdate.Text 
= DT.ToString("yyyyMMdd");
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                }

ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
if (!(reader.IsDBNull(4)))
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
{
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    
byte[] temp = new byte[4000];
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    reader.GetBytes(
4,0,temp,0,4000);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    tbicmac.Text 
= getraw(temp);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                }

ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
else
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    tbicmac.Text 
= "";
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
if (!(reader.IsDBNull(5)))
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
{
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    
/*char tempflag = reader.GetChar(5);  //不支持此方法
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    switch (tempflag)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    {
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                        case '1':
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                            rb1.Checked = true;break;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                        case '2':
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                            rb2.Checked = true;break;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                        default :
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                            rb3.Checked = true;break;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    }
*/

ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    
char tempflag = Convert.ToChar(reader.GetValue(5));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    
switch (tempflag)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    
{
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                        
case '1':
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                            rb1.Checked 
= true;break;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                        
case '2':
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                            rb2.Checked 
= true;break;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                        
default :
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                            rb3.Checked 
= true;break;
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    }

ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                }

ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
if (!(reader.IsDBNull(6)))
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
{
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)        
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    Label1.Text 
= "<img src='webform3.aspx?ROWID="+TBROWID.Text+"'>";
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                }

ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            }

ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            reader.Close();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocon.Close();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)        }

webform3.aspx的程序:
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)         private   void  Page_Load( object  sender, System.EventArgs e)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)        
{
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            OracleConnection Ocon 
= new  OracleConnection("user id=cmes;data source=mes;password=cmes");
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocon.Open(); 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            OracleCommand Ocom 
= new OracleCommand("select EMP_PICTURE from c_emp1_t where rowid = :emprowid",Ocon);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters.Add(
new OracleParameter("emprowid",OracleType.RowId));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocom.Parameters[
"emprowid"].Value = Request.Params["ROWID"];
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            OracleDataReader reader 
= Ocom.ExecuteReader();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
while (reader.Read())
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
{
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
if (!(reader.IsDBNull(0)))
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                
{
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    OracleLob tempBlob 
= reader.GetOracleLob(0);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    
byte[] tempbuffer = new byte[tempBlob.Length];
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    
//tempBlob.BeginBatch(OracleLobOpenMode.ReadWrite);会有错误ORA-22292: 无法在没有事务处理的情况下以读写模式打开 LOB 
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
                    tempBlob.BeginBatch();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    tempBlob.Read(tempbuffer,
0,tempbuffer.Length);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    tempBlob.EndBatch();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    
//下面是把具体的文件保存出来
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
                    BinaryWriter writer = new BinaryWriter(new FileStream("D:/WWWROOT/MYWEB/dbtest/Image/temp.bmp",FileMode.Create));
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    
for(int i=0;i<tempbuffer.Length;i++)
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    
{
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                        writer.Write(tempbuffer[i]);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    }

ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    writer.Close();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    
//下面是直接把图片用流向客户端输出
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)
                    Response.BinaryWrite(tempbuffer);
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                    
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)                }

ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            }

ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            reader.Close();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)            Ocon.Close();
ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)        }
这些代码在2000下测试通过的,初次写代码有些凌乱,请大家多多提意见