首页 > 编程 > .NET > 正文

C#.Net开发基于Oracle数据库系统常见异常处理

2024-07-10 13:07:24
字体:
来源:转载
供稿:网友

注意:先用单步调试,找出出错程序语句
<1>未注册xxx动态链接库
(未注册动态链接库文件或者该方法所在的类库不存在)

<2>未将对象设置引用到对象实例 
(没有给对象正确赋值,可检查参数值,引用了未初始化的变量

<3> “mydelegate”是不明确的引用 
(同等级别的名字空间节点上出现同名委托)

<4>不支持并行的事务
 (新事务未提交或者事务执行不完整,注意,如果提交事务之前存在return语句,那么必须将事务提交放在return之前执行)

<5>ora: 找不到预期的from关键字
(sql语句中关键字冲突)
(from前面字符未保留空格)

<6>字符串格式不匹配
 (oracle中整数类型参数应用程序中可用字符串代替,但varchar类型参数在应用程序中必须对应为字符串类型)
(参数转换不正确,参数类型与数据表种字段类型不匹配)

<7>缺少表达式/未找到预期的关键字from
(sql语句错误)
(可用快速监视的方法查看变量的执行情况)
(oracle中不能用as关键字给表别名,可去掉as)
(转换错误,例如char应为to_char,详情请参阅相关oracle技术资料)

<7>sql命令未正确结束
(缺少括号或其他标示符)

<8>current timestamp
(1)改为:current_timestamp,即可
(2)表别名只需: select * from tablename a 即可,不能写成: select * from tablename as a
(3)to_char(char),   to_number(int), to_date(date)

<9>dual 代替 idm db2中的sysibm.sysdummy1, 用to_date代替timestamp
        为组合框指定数据源的时候,要把数据源放在前面,例如 cmb.datasource = datasource; cmb.displaynumber = ...
<10>调用存储过程时出错,参数个数或者类型错误
(检查参数名称、值、类型、长度、传出方向是否和存储过程参数一致,须仔细检查,不然可能一处出错,全盘皆错。鄙人曾经碰到过一次,36个参数要传入存储过程,只因为一个参数名出错,结果系统老提示以上异常 。

<11>执行存储过程中,插入的列过大!
(参数长度太小,或者被引用的字符串没有去掉空格)
<12>给current_timestamp 加上n个小时
select current_timestamp + n/24 from dual

<12>给组合框指定数据源,所有属性都正常,但是就是无法正常显示!

 详见:一个罕见c#异常的解决过程                                                                                                                                                   
<13>缺乏应有的引用和程序集,奇怪,我明明添加了呀?
(1)系统内部错误,关掉开发环境,重启动即可!
(2)引用名发生大小写错误!

<14>"control"是不明确的引用
(1)在系统感知的名字空间下,出现名字相同的类。比如:system.windows.forms.textbox, mytest.textbox
(2)详细指定名字空间全称即可,不能以textbox引用,因为系统不知道你要引用的是哪个textbox

<15>日期格式图片在转换整个输入字符串之前结束
(1)这通常因为程序中的诸如此类的语句:cast(djrq as char(10))||'' ''||cast(djsj as char(10))
(2)应改为: to_date(to_char(djrq,'yyyy-mm-dd')||' '||to_char(djsj,'hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')

<16>无法处理的服务名
(1)这通常是因为连接字符串错误,或者应用程序所在的文件夹名称错误,导致无法登录oracle服务器。
       例如如果文件夹命名为aaa(dd)等诸如此类含有非字母和数字组合的名称就会因发此异常,特别注意。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表