在 Oracle 数据库上构建 .NET 应用程序
日期:2007年8月16日 作者: 查看:[大字体 中字体 小字体]-
图 6: 捕获到一个 ORA-12545 错误,并向用户显示。
Oracle DBA 或开发人员很清楚 ORA-12545 的意义,但是最终用户不清楚。 一种更好的解决方案是添加一条额外的 Catch 语句来捕获最常见的数据库错误并显示对用户友好的消息。 OracleException class does not have a Number property in VB.NET.) -->
Catch ex As OracleException ' catches only Oracle errors If InStr(1, ex.Message.ToString(), "ORA-1:", CompareMethod.Text) Then MessageBox.Show("Error attempting to insert duplicate data.") ElseIf InStr(1, ex.Message.ToString(), "ORA-12545:", CompareMethod.Text) Then MessageBox.Show("The database is unavailable.") Else MessageBox.Show("Database error: " + ex.Message.ToString()) End If Catch ex As Exception ' catches any error MessageBox.Show(ex.Message.ToString()) catch (OracleException ex) // catches only Oracle errors { switch (ex.Number) { case 1: MessageBox.Show("Error attempting to insert duplicate data."); break; case 12545: MessageBox.Show("The database is unavailable."); break; default: MessageBox.Show("Database error:" + ex.Message.ToString()); break; } } catch (Exception ex) // catches any error { MessageBox.Show(ex.Message.ToString()); }注意上面的代码示例中的两条 Catch 语句。 如果没有捕获到任何 Oracle 错误,那么将跳过第一条 Catch 语句分支,让第二条 Catch 语句来捕获其他任何类型的错误。 在代码中,应该根据从特殊到一般的顺序对 Catch 语句排序。 在实施了对用户友好的异常处理代码之后,ORA-12545 错误消息显示如下:
图 7: 针对 ORA-12545 错误的对用户友好的消息
Finally 代码将始终执行,而无论错误是否发生。 通过在 Finally 代码块中加入连接对象的 Close 或 Dispose 方法调用,在执行了 Try-Catch-Finally 代码段之后,数据库连接将始终关闭。 试图关闭没有打开的数据库连接不会导致错误。 例如,如果数据库不可用,数据库连接没有打开,那么 Finally 代码块将试图关闭不存在的连接。 执行多余的 Close 或 Dispose 是无效的。 只需将一条 Close 或 Dispose 方法放到 Finally 代码块中,将保证关闭连接。
利用 DataReader 检索多个值
到目前为止,我们的示例仅说明了如何检索单个值。 DataReader 可以检索多列和多行的值。 首先进行多行、单列的查询:
select deptno, dname, loc from dept where deptno = 10
要获取列的值,可以使用以零为基数的序号或列名。 序号与查询中的顺序相关。 因而,可以在 VB.NET 中通过使用 dr.Item(2) 或 dr.Item("loc") 来查询 loc 列的值。下面是将 dname 和来自上一查询的 loc 列串连起来的代码段:
Label1.Text = "The " + dr.Item(1) + " department is in " + dr.Item("loc") ' VB.NET Label1.Text = "The " + dr.GetString(1) + " department is in " + dr.GetString(2); // C#现在我们进行返回多行的查询:select deptno, dname, loc from dept
要处理从 DataReader 中返回的多行,需要某种类型的循环结构。 此外,需要一个可以显示多行的控件。 DataReader 是一个仅正向的只读游标,因此不能将其与可更新或完全可滚动的控件(如 Windows Forms DataGrid 控件)捆绑在一起。 DataReader 与 ListBox 控件兼容,如以下代码段所示:While dr.Read() ' VB.NET ListBox1.Items.Add("The " + dr.Item(1) + " department is in " + dr.Item("loc")) End While while (dr.Read()) // C# { listBox1.Items.Add("The " + dr.GetString(1) + " department is in " + dr.GetString(2); }上机操作 3(利用 DataReader 检索多列和多行)重点介绍了这些概念中的一部分。 - 上一页 [1] [2] [3] [4] [5] [6] [7] 下一页
-
- 在 Oracle 数据库上构建 .NET 应用程序 相关文章:
- ·ASP函数库
- ·轻松了解MySQL数据库中的CONVERT()
- ·JSP Struts之HTML标签库详解
- ·图片保存到数据库和从数据库读取图片并显示(c#)
- ·ASP.NET中数据库的操作初步----增加、删除、修改
- ·数据库连接字符串大全
- ·C语言的常用库函数使用方法分析及用途
- ·Flash制作过渡卷动效果精美图库特效
- ·进程管理知识库 - ccenter.exe - ccenter - 进程管理信息
- ·VB中使用DirectX库的简明教程
- 在 Oracle 数据库上构建 .NET 应用程序 相关软件
- ·腾讯QQ IP数据库1025
- ·金山毒霸 引擎病毒库升级包 2007.07.19
- ·Kaspersky(卡巴斯基) Anti-Virus 累计病毒库 2007.07.22
- ·vc6.0 mfc类库参考手册
- ·工程施工安全技术交底资料库 V05.15.08
- ·中国古典文库 V2.0
- ·欧美性感美女伊丽莎·库斯伯特写真壁纸
- ·法律文书、合同样本库 V5.10 Build 050616
- ·NOD32病毒库 1.2526(20070912)
- ·五笔86升级词库 V1.2
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:SCO unix 下定时备份 Oracle dmp 文件
精品推荐
热点TOP10
- ·9istatspack使用手册
- ·ORACLE UPDATE 语句语法与性能分析的一点看法
- ·ORACLE备份&恢复案例--ORACLE BACKUP&RESTORE SCHEME
- ·关于oracle日期函数的介绍和使用
- ·Oracle的SQL*PLUS命令的使用大全
- ·oracle函数之常见单行字符串函数
- ·ORACLE傻瓜手册长篇连载
- ·详细介绍ORACLE sqlplus命令
- ·Decode 函数的用法
- ·ORACLE 培训教程(1)
- ·Oracle 游标使用大全
- ·把Oracle数据库移植到Microsoft SQL Server 7.0
- ·Oracle数据库检查死锁的sql
- ·Oracle的SQL语句执行效率问题查找与解决方法
- ·Oracle常用的OCI函数
- ·用正则表达式函数验证身份证号码合法性
- ·VMware下RedHat安装Oracle 9i RAC全攻略
- ·oracle中pro*c的学习
- ·Oracle 9i 分析函数参考手册
- ·数据库备份与恢复测试(8)
特别推荐
- ·Oracle环境下APACHE虚拟服务器如何设置
- ·常见Oracle HINT的用法
- ·ORA-00257: archiver error. Connect internal only, until freed.
- ·oracle的update问题
- ·小议索引的使用
- ·oracle产品服务和技术级别介绍,OrACLE服务
- ·Oracle 数据类型
- ·Oracle数据库检查死锁的sql
- ·怎样将冷备份移植到另一台Solaris机器上
- ·Oracle 动态SQL返回单条结果和结果集
- ·手动建立 Oracle9i 数据库
- ·Oracle内存结构(二)----Shared Pool的详细信息
- ·DELPHI 调用 Oracle 存储过程并返回数据集的例子.
- ·关于block中行数据的存储与空间重组三
- ·Sybase及SQL Anywhere SQL语句小结
- ·ORACLE备份&恢复案例--ORACLE BACKUP&RESTORE SCHEME
- ·Oracle ERP 11业务调研报告-AP应付帐
- ·在 Oracle 数据库上构建 .NET 应用程序
- ·Oracle的SQL语句执行效率问题查找与解决方法
- ·oracle中pro*c的学习
