日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發布時間:2024/3/26 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql long raw类型_ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這里我用的是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上加:

下一步→

和代碼:

privatevoidbtunload_Click(objectsender,?System.EventArgs?e)

{

????????????

????????????btunload.Enabled=false;

//獲得文件名稱stringtempfilename=IoFile.PostedFile.FileName;

//注:?loFile.PostedFile.FileName?返回的是?通過文件對話框選擇的文件名,這之中包含了文件的目錄信息tempfilename=Path.GetFileName?(?tempfilename);

if(tempfilename.Substring(tempfilename.Length-4,4)==".bmp")

{

//去掉目錄信息,返回文件名稱

//判斷上傳目錄是否存在,不存在就建立stringtempDirectory="D:/WWWROOT/MYWEB/dbtest/Image/";

if(!Directory.Exists?(?tempDirectory?)?)??

   ????????????Directory.CreateDirectory?(?tempDirectory?)?;

//上傳文件到服務器stringtempPath=tempDirectory+tempfilename;//得到上傳目錄及文件名稱IoFile.PostedFile.SaveAs?(?tempPath?);

????????????????Label1.Text="";

????????????????Session["filename"]=tempfilename;

????????????}else

{

????????????????Label1.Text="錯誤的文件類型";

????????????}????????????btunload.Enabled=true;

????????????

/**//*   '?獲得并顯示上傳文件的屬性?

  FileName.Text?=?lstrFileName

   '?獲得文件名稱

  FileType.Text?=?loFile.PostedFile.ContentType?

   '?獲得文件類型

  FileLength.Text?=?cStr?(?loFile.PostedFile.ContentLength?)?

   '?獲得文件長度

  FileUploadForm.visible?=?false?

  AnswerMsg.visible?=?true

   '?顯示上傳文件屬性

  End?sub*/

????????}

INSERT:

privatevoidBtInsert_Click(objectsender,?System.EventArgs?e)

{

????????????

????????????

????????????OracleConnection?Ocon=newOracleConnection("user?id=cmes;data?source=mes;password=cmes");

????????????Ocon.Open();?

//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);OracleCommand?Ocom=newOracleCommand("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);

????????????Ocom.Parameters.Add(newOracleParameter("emp_id",OracleType.Number));

????????????Ocom.Parameters.Add(newOracleParameter("emp_no",OracleType.VarChar));

????????????Ocom.Parameters.Add(newOracleParameter("emp_desc",OracleType.LongVarChar));

????????????Ocom.Parameters.Add(newOracleParameter("emp_date",OracleType.DateTime));

????????????Ocom.Parameters.Add(newOracleParameter("flag",OracleType.Char));

????????????Ocom.Parameters.Add(newOracleParameter("emp_ic_mac",OracleType.Raw));

//Ocom.Parameters.Add(new?OracleParameter("picture",OracleType.Blob));Ocom.Parameters["emp_id"].Value=Convert.ToDecimal(tbempid.Text);

????????????Ocom.Parameters["emp_no"].Value=tbempno.Text;

????????????Ocom.Parameters["emp_desc"].Value=tbempdesc.Text;

stringempdate=tbempdate.Text;//yyyymmddOcom.Parameters["emp_date"].Value=newDateTime(Convert.ToInt32(empdate.Substring(0,4)),Convert.ToInt32(empdate.Substring(4,2)),Convert.ToInt32(empdate.Substring(6,2))?);

if(rb1.Checked)?

????????????????Ocom.Parameters["flag"].Value='1';

if(rb2.Checked)?

????????????????Ocom.Parameters["flag"].Value='2';

if(rb3.Checked)?

????????????????Ocom.Parameters["flag"].Value='3';

????????????Ocom.Parameters["emp_ic_mac"].Value=setraw(tbicmac.Text);????????????

????????????Ocom.ExecuteNonQuery();

/**//*由與有字段long和blob一起,所以不能在一個insert語句中進行插入,單獨insert是成功的

????????????

????????????OracleConnection?Ocon?=?new??OracleConnection("user?id=cmes;data?source=mes;password=cmes");

????????????Ocon.Open();?

????????????OracleCommand?Ocom?=?new?OracleCommand("insert?into?c_emp1_t?(EMP_ID,EMP_PICTURE)values(:emp_id,:picture)",Ocon);

????????????Ocom.Parameters.Add(new?OracleParameter("emp_id",OracleType.Number));

????????????Ocom.Parameters.Add(new?OracleParameter("picture",OracleType.Blob));

????????????Ocom.Parameters["emp_id"].Value?=?Convert.ToDecimal(tbempid.Text);

????????????FileStream?reader?=?new?FileStream("D:/WWWROOT/MYWEB/dbtest/Image/002.bmp",FileMode.Open);//在iis中不用用“\”目錄結構應該是“/”

????????????byte[]?tempimage?=?new?byte[reader.Length];

????????????reader.Read(tempimage,0,tempimage.Length);

????????????//OracleLob?tempLob=OracleLob.Null;

????????????//tempLob.BeginBatch(OracleLobOpenMode.ReadWrite);

????????????//tempLob.Write(tempimage,0,tempimage.Length);

????????????//tempLob.EndBatch();

????????????reader.Close();

????????????Ocom.Parameters["picture"].Size?=?tempimage.Length;

????????????//tempimage.CopyTo(Ocom.Parameters["picture"].Value,0);

????????????Ocom.Parameters["picture"].Value?=?tempimage;

????????????Ocom.ExecuteNonQuery();*/stringmyfilename=Convert.ToString(Session["filename"]);

if(myfilename!="")

{

????????????????Ocom.Parameters.Clear();

????????????????Ocom.CommandText="update?c_emp1_t?SET?EMP_PICTURE?=?:PICTURE?WHERE?EMP_ID=?:EMP_ID";

????????????????Ocom.Parameters.Add(newOracleParameter("EMP_ID",OracleType.Number));

????????????????Ocom.Parameters.Add(newOracleParameter("PICTURE",OracleType.Blob));

????????????????Ocom.Parameters["EMP_ID"].Value=Convert.ToDecimal(tbempid.Text);

????????????????FileStream?reader=newFileStream("D:/WWWROOT/MYWEB/dbtest/Image/"+myfilename,FileMode.Open);//在iis中不用用“\”目錄結構應該是“/”byte[]?tempimage=newbyte[reader.Length];

????????????????reader.Read(tempimage,0,tempimage.Length);

????????????????reader.Close();

????????????????

????????????????Ocom.Parameters["PICTURE"].Size=tempimage.Length;

????????????????Ocom.Parameters["PICTURE"].Value=tempimage;

????????????????Ocom.ExecuteNonQuery();

????????????????Session["filename"]="";

????????????}

????????????Ocon.Close();

????????}

UPDATE:

privatevoidbtUpdate_Click(objectsender,?System.EventArgs?e)

{

????????????OracleConnection?Ocon=newOracleConnection("user?id=cmes;data?source=mes;password=cmes");

????????????Ocon.Open();?

????

????????????OracleCommand?Ocom=newOracleCommand("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);

????????????Ocom.Parameters.Add(newOracleParameter("MYROWID",OracleType.RowId));

????????????Ocom.Parameters.Add(newOracleParameter("emp_id",OracleType.Number));

????????????Ocom.Parameters.Add(newOracleParameter("emp_no",OracleType.VarChar));

????????????Ocom.Parameters.Add(newOracleParameter("emp_desc",OracleType.LongVarChar));

????????????Ocom.Parameters.Add(newOracleParameter("emp_date",OracleType.DateTime));

????????????Ocom.Parameters.Add(newOracleParameter("flag",OracleType.Char));

????????????Ocom.Parameters.Add(newOracleParameter("emp_ic_mac",OracleType.Raw));

????????????Ocom.Parameters["MYROWID"].Value=TBROWID.Text;

????????????Ocom.Parameters["emp_id"].Value=Convert.ToDecimal(tbempid.Text);

????????????Ocom.Parameters["emp_no"].Value=tbempno.Text;

????????????Ocom.Parameters["emp_desc"].Value=tbempdesc.Text;

stringempdate=tbempdate.Text;//yyyymmddOcom.Parameters["emp_date"].Value=newDateTime(Convert.ToInt32(empdate.Substring(0,4)),Convert.ToInt32(empdate.Substring(4,2)),Convert.ToInt32(empdate.Substring(6,2))?);

if(rb1.Checked)?

????????????????Ocom.Parameters["flag"].Value='1';

if(rb2.Checked)?

????????????????Ocom.Parameters["flag"].Value='2';

if(rb3.Checked)?

????????????????Ocom.Parameters["flag"].Value='3';

????????????Ocom.Parameters["emp_ic_mac"].Value=setraw(tbicmac.Text);????????????

????????????Ocom.ExecuteNonQuery();

stringmyfilename=Convert.ToString(Session["filename"]);

if(myfilename!="")

{

????????????????Ocom.Parameters.Clear();

????????????????Ocom.CommandText="update?c_emp1_t?SET?EMP_PICTURE?=?:PICTURE?WHERE?EMP_ID=?:EMP_ID";

????????????????Ocom.Parameters.Add(newOracleParameter("EMP_ID",OracleType.Number));

????????????????Ocom.Parameters.Add(newOracleParameter("PICTURE",OracleType.Blob));

????????????????Ocom.Parameters["EMP_ID"].Value=Convert.ToDecimal(tbempid.Text);

????????????????FileStream?reader=newFileStream("D:/WWWROOT/MYWEB/dbtest/Image/"+myfilename,FileMode.Open);//在iis中不用用“\”目錄結構應該是“/”byte[]?tempimage=newbyte[reader.Length];

????????????????reader.Read(tempimage,0,tempimage.Length);

????????????????reader.Close();

????????????????

????????????????Ocom.Parameters["PICTURE"].Size=tempimage.Length;

????????????????Ocom.Parameters["PICTURE"].Value=tempimage;

????????????????Ocom.ExecuteNonQuery();

????????????????Session["filename"]="";

????????????}

????????????Ocon.Close();

????????}SELECT(由于圖片是直接向客戶端輸出,所以需要另一個頁面來輸入圖片):

privatevoidbtselect_Click(objectsender,?System.EventArgs?e)

{

if(TBROWID.Text.Length<18)

{

????????????????TBROWID.Text="請輸入正確的ROWID";

return;

????????????????

????????????}????????????OracleConnection?Ocon=newOracleConnection("user?id=cmes;data?source=mes;password=cmes");

????????????Ocon.Open();?

????????????OracleCommand?Ocom=newOracleCommand("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);

????????????Ocom.Parameters.Add(newOracleParameter("emprowid",OracleType.RowId));

????????????Ocom.Parameters["emprowid"].Value=TBROWID.Text;

????????????OracleDataReader?reader=Ocom.ExecuteReader();

while(reader.Read())

{

if(!(reader.IsDBNull(0)))

????????????????tbempid.Text=Convert.ToString(?reader.GetDecimal(0));

if(!(reader.IsDBNull(1)))

????????????????tbempno.Text=reader.GetString(1);

if(!(reader.IsDBNull(2)))

????????????????tbempdesc.Text=reader.GetString(2);

if(!(reader.IsDBNull(3)))

{

????????????????????DateTime?DT=reader.GetDateTime(3);

????????????????????tbempdate.Text=DT.ToString("yyyyMMdd");

????????????????}????????????????

????????????????

if(!(reader.IsDBNull(4)))

{

????????????????????

byte[]?temp=newbyte[4000];

????????????????????reader.GetBytes(4,0,temp,0,4000);

????????????????????tbicmac.Text=getraw(temp);

????????????????}else????????????????????tbicmac.Text="";

if(!(reader.IsDBNull(5)))

{

/**//*char?tempflag?=?reader.GetChar(5);??//不支持此方法

????????????????????switch?(tempflag)

????????????????????{

????????????????????????case?'1':

????????????????????????????rb1.Checked?=?true;break;

????????????????????????case?'2':

????????????????????????????rb2.Checked?=?true;break;

????????????????????????default?:

????????????????????????????rb3.Checked?=?true;break;

????????????????????}*/chartempflag=Convert.ToChar(reader.GetValue(5));

switch(tempflag)

{

case'1':

????????????????????????????rb1.Checked=true;break;

case'2':

????????????????????????????rb2.Checked=true;break;

default:

????????????????????????????rb3.Checked=true;break;

????????????????????}

????????????????????

????????????????}if(!(reader.IsDBNull(6)))

{

????????

????????????????????Label1.Text="";

????????????????

????????????????}????????????}????????????reader.Close();

????????????Ocon.Close();

????????????

????????}

webform3.aspx的程序:

privatevoidPage_Load(objectsender,?System.EventArgs?e)

{

????????????OracleConnection?Ocon=newOracleConnection("user?id=cmes;data?source=mes;password=cmes");

????????????Ocon.Open();?

????????????OracleCommand?Ocom=newOracleCommand("select?EMP_PICTURE?from?c_emp1_t?where?rowid?=?:emprowid",Ocon);

????????????Ocom.Parameters.Add(newOracleParameter("emprowid",OracleType.RowId));

????????????Ocom.Parameters["emprowid"].Value=Request.Params["ROWID"];

????????????OracleDataReader?reader=Ocom.ExecuteReader();

while(reader.Read())

{

????????????

if(!(reader.IsDBNull(0)))

{

????????????????????OracleLob?tempBlob=reader.GetOracleLob(0);

byte[]?tempbuffer=newbyte[tempBlob.Length];

//tempBlob.BeginBatch(OracleLobOpenMode.ReadWrite);會有錯誤ORA-22292:?無法在沒有事務處理的情況下以讀寫模式打開?LOBtempBlob.BeginBatch();

????????????????????tempBlob.Read(tempbuffer,0,tempbuffer.Length);

????????????????????tempBlob.EndBatch();

//下面是把具體的文件保存出來BinaryWriter?writer=newBinaryWriter(newFileStream("D:/WWWROOT/MYWEB/dbtest/Image/temp.bmp",FileMode.Create));

for(inti=0;i

{

????????????????????????writer.Write(tempbuffer[i]);

????????????????????}????????????????????writer.Close();

//下面是直接把圖片用流向客戶端輸出Response.BinaryWrite(tempbuffer);

????????????????????

????????????????}????????????}????????????reader.Close();

????????????Ocon.Close();

????????}這些代碼在2000下測試通過的,初次寫代碼有些凌亂,請大家多多提意見

總結

以上是生活随笔為你收集整理的mysql long raw类型_ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。