ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:41.95KB ,
资源ID:2948220      下载积分:20 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-2948220.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob).docx)为本站会员(dzzj200808)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

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

1、ORACLE 数据库中主要字段类型的读写例子(包括:Long、Raw、Blob)这里我用的是 ORACLE9I, 建立了表 C_EMP1_T,结构如下:create table C_EMP1_T(EMP_ID NUMBER(20) not null, /用户 IDEMP_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/UP

2、DATE/SELECT 的代码分别如下(DELETE 比较简单就省略了,其中SELECT 和 UPDATE 的条件都是记录的 rowid):首先 BLOB 字段是存图片的,所以有一个过程是把图片传到服务器上:先在 aspx 上加:下一步和代码:private void btunload_Click(object sender, System.EventArgs e)btunload.Enabled = false;/获得文件名称 string tempfilename = IoFile.PostedFile.FileName;/注: loFile.PostedFile.FileName 返回的

3、是 通过文件对话框选择的文件名,这之中包含了文件的目录信息tempfilename = Path.GetFileName ( tempfilename);if (tempfilename.Substring(tempfilename.Length-4,4) = “.bmp“)/去掉目录信息,返回文件名称/判断上传目录是否存在,不存在就建立 string tempDirectory = “D:/WWWROOT/MYWEB/dbtest/Image/“;if ( ! Directory.Exists ( tempDirectory ) ) Directory.CreateDirectory ( t

4、empDirectory ) ;/上传文件到服务器 string tempPath = tempDirectory+tempfilename;/得到上传目录及文件名称 IoFile.PostedFile.SaveAs ( tempPath );Label1.Text = “;Session“filename“ = tempfilename;elseLabel1.Text = “错误的文件类型“;btunload.Enabled = true;/* 获得并显示上传文件的属性 FileName.Text = lstrFileName 获得文件名称FileType.Text = loFile.Pos

5、tedFile.ContentType 获得文件类型FileLength.Text = cStr ( loFile.PostedFile.ContentLength ) 获得文件长度FileUploadForm.visible = false AnswerMsg.visible = true 显示上传文件属性End sub */INSERT:private void BtInsert_Click(object sender, System.EventArgs e)OracleConnection Ocon = new OracleConnection(“user id=cmes;data so

6、urce=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 = new OracleCommand(“insert int

7、o 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(new OracleParameter(“emp_id“,OracleType.Number);Ocom.Parameters.Add(new OracleParameter(“emp_no“,OracleType.VarChar);Ocom.Parameters.Add(new

8、 OracleParameter(“emp_desc“,OracleType.LongVarChar);Ocom.Parameters.Add(new OracleParameter(“emp_date“,OracleType.DateTime);Ocom.Parameters.Add(new OracleParameter(“flag“,OracleType.Char);Ocom.Parameters.Add(new OracleParameter(“emp_ic_mac“,OracleType.Raw);/Ocom.Parameters.Add(new OracleParameter(“p

9、icture“,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;string empdate = tbempdate.Text;/ yyyymmddOcom.Parameters“emp_date“.Value = new DateTime(Convert.ToInt32(empdate.Subs

10、tring(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

11、.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

12、.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 中不用用 “”目

13、录结构应该是“/”byte tempimage = new bytereader.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.Lengt

14、h;/tempimage.CopyTo(Ocom.Parameters“picture“.Value,0);Ocom.Parameters“picture“.Value = tempimage;Ocom.ExecuteNonQuery();*/string myfilename = Convert.ToString(Session“filename“);if (myfilename != “)Ocom.Parameters.Clear();Ocom.CommandText = “update c_emp1_t SET EMP_PICTURE = :PICTURE WHERE EMP_ID= :

15、EMP_ID “;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/“+myfilename,FileMode.Open

16、);/在 iis 中不用用“” 目录结构应该是“/”byte tempimage = new bytereader.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:private void btUpdate

17、_Click(object sender, System.EventArgs e)OracleConnection Ocon = new OracleConnection(“user id=cmes;data source=mes;password=cmes“);Ocon.Open(); 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_ma

18、c,EMP_ADMIN_FLAG= :flag WHERE ROWID = :MYROWID“,Ocon);Ocom.Parameters.Add(new OracleParameter(“MYROWID“,OracleType.RowId);Ocom.Parameters.Add(new OracleParameter(“emp_id“,OracleType.Number);Ocom.Parameters.Add(new OracleParameter(“emp_no“,OracleType.VarChar);Ocom.Parameters.Add(new OracleParameter(“

19、emp_desc“,OracleType.LongVarChar);Ocom.Parameters.Add(new OracleParameter(“emp_date“,OracleType.DateTime);Ocom.Parameters.Add(new OracleParameter(“flag“,OracleType.Char);Ocom.Parameters.Add(new OracleParameter(“emp_ic_mac“,OracleType.Raw);Ocom.Parameters“MYROWID“.Value = TBROWID.Text;Ocom.Parameters

20、“emp_id“.Value = Convert.ToDecimal(tbempid.Text);Ocom.Parameters“emp_no“.Value = tbempno.Text;Ocom.Parameters“emp_desc“.Value = tbempdesc.Text;string empdate = tbempdate.Text;/ yyyymmddOcom.Parameters“emp_date“.Value = new DateTime(Convert.ToInt32(empdate.Substring(0,4),Convert.ToInt32(empdate.Subst

21、ring(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();string myfilename = C

22、onvert.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(new OracleParameter(“EMP_ID“,OracleType.Number);Ocom.Parameters.Add(new OracleParameter(“PICTURE“,OracleType.Blob)

23、;Ocom.Parameters“EMP_ID“.Value = Convert.ToDecimal(tbempid.Text);FileStream reader = new FileStream(“D:/WWWROOT/MYWEB/dbtest/Image/“+myfilename,FileMode.Open);/在 iis 中不用用“” 目录结构应该是“/”byte tempimage = new bytereader.Length;reader.Read(tempimage,0,tempimage.Length);reader.Close();Ocom.Parameters“PICTU

24、RE“.Size = tempimage.Length;Ocom.Parameters“PICTURE“.Value = tempimage;Ocom.ExecuteNonQuery();Session“filename“ = “;Ocon.Close();SELECT(由于图片是直接向客户端输出,所以需要另一个页面来输入图片):private void btselect_Click(object sender, System.EventArgs e)if (TBROWID.Text.Length “;reader.Close();Ocon.Close();webform3.aspx 的程序:

25、private void Page_Load(object sender, System.EventArgs e)OracleConnection Ocon = new OracleConnection(“user id=cmes;data source=mes;password=cmes“);Ocon.Open(); OracleCommand Ocom = new OracleCommand(“select EMP_PICTURE from c_emp1_t where rowid = :emprowid“,Ocon);Ocom.Parameters.Add(new OracleParam

26、eter(“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 = new bytetempBlob.Length;/tempBlob.BeginBatch(OracleLobOpe

27、nMode.ReadWrite);会有错误 ORA-22292: 无法在没有事务处理的情况下以读写模式打开 LOB tempBlob.BeginBatch();tempBlob.Read(tempbuffer,0,tempbuffer.Length);tempBlob.EndBatch();/下面是把具体的文件保存出来BinaryWriter writer = new BinaryWriter(new FileStream(“D:/WWWROOT/MYWEB/dbtest/Image/temp.bmp“,FileMode.Create);for(int i=0;itempbuffer.Length;i+)writer.Write(tempbufferi);writer.Close();/下面是直接把图片用流向客户端输出Response.BinaryWrite(tempbuffer);reader.Close();Ocon.Close();这些代码在 2000 下测试通过的,初次写代码有些凌乱,请大家多多提意见

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报