我有两个表A和B,其中B多了一个Object ID字段,其它都一样,包括了三个BLOB字段,现在我先把A表的内容转移到B中,请问C#应该如何操作,读取,写入,谢谢
A表字段:
poletype(varchar),aheight(number),picture1(blob)
B表多一个Object ID字段,

解决方案 »

  1.   

    给你一段代码,将文件读写那块稍稍改动即可。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("","<script language='javascript'>alert('"+e1.Message+"')</script>");
       }
       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();