CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

救命啊!! oracle 连接问题

楼主yongwc(疯狂客)2003-11-01 08:37:05 在 .NET技术 / C# 提问

我用c#   +   .net   framework   provider   for   oracle,我的程序是一个数据接收程序,需要常驻内存不停的运行,将接收到的数据写入到oracle   数据库中。  
  如果数据库和网络条件都正常,则程序运行良好。但现在问题是,如果网络断了,或数据库重新启动了,则数据库连接就再也不能用了,重新创建数据库连接对象都不可以,报“未连接oracle   ”错误!除非重新启动数据接收进程!  
  我写的保存数据程序如下  
   
  public   int   saveData(string   aa)  
  {  
        OracleConnection   conn=new   ....  
        conn.open();  
        try{  
          ........  
   
                }  
  finaly  
  {  
  conn.close()  
  }  
   
  } 问题点数:100、回复次数:14Top

1 楼cnwolfs(cnwolfs)回复于 2003-11-01 09:13:07 得分 10

public   int   saveData(string   aa)  
  {  
          try  
          {  
                  OracleConnection   conn=new   ....  
                  conn.open();  
                  try  
                  {  
          ........  
   
                  }  
                  catch  
                  {  
                          conn.close()  
                  }  
          }  
          catch  
          {  
          }  
  }  
  Top

2 楼513(513)回复于 2003-11-01 09:18:33 得分 10

OracleConnection   conn?  
  什么东东?不是它有问题吧Top

3 楼yongwc(疯狂客)回复于 2003-11-01 09:53:47 得分 0

OracleConnection   是微软提供的   访问oracle   数据库,类是与ado.net   ,SqlConnection    
  只要网络不断,它都可以正常工作,如果拔网线再连上就不行了Top

4 楼yongwc(疯狂客)回复于 2003-11-01 09:58:09 得分 0

初步认为是连接池的原因,.net   里面连接池是由   framework   提供的,而这里程序控制不到。  
  其实连接已经中断,但连接池还将该连接提供出来,所以执行不了,但是找不到任何方法控制连接池!  
  不知是不是这样?Top

5 楼rgbcn(奔向.net)回复于 2003-11-01 10:02:25 得分 10

conn.Dispose()   //加收试试Top

6 楼rgbcn(奔向.net)回复于 2003-11-01 10:02:35 得分 0

回收Top

7 楼513(513)回复于 2003-11-01 10:10:04 得分 0

是这样呀,谢谢。  
   
  不像。net要处理的,解决办法可能在oracal  
   
  Top

8 楼yongwc(疯狂客)回复于 2003-11-01 10:12:05 得分 0

已经试过了,不行,加GC.supressfinally(connection)   也不行Top

9 楼cnming(cnming)回复于 2003-11-01 11:06:02 得分 0

前提是每次都有一个新连接Top

10 楼yongwc(疯狂客)回复于 2003-11-01 11:34:13 得分 0

如何取得新连接?Top

11 楼91bct(Jerry)回复于 2003-11-01 12:02:33 得分 30

[未连接oracle   ”错误]  
  这个问题我也碰到过,到现在也不清楚有什么好的解决办法,因为使用的是try...catch  
  所以在catch中弹出的对话框中我选择忽略,让程序继续运行,这样又正常了,我就不用[重新启动程序]。  
  Top

12 楼91bct(Jerry)回复于 2003-11-01 12:13:58 得分 10

我刚刚有试了一下,在连续两次的忽略之后又可以正常取得连接并读取出数据。  
  第一次错误提示是:连接失败,因为目标主机或对象不存在。  
  第二次错误提示是:没有监听...  
  所以我认为这样可以不必重新启动程序...Top

13 楼zhangzgl(老张)回复于 2003-11-01 14:49:23 得分 30

建议你在页面的类中添加一个构造函数,在构造函数中初始化连接数据库,先打开一次,然后在关闭一次;然后在catch块中加人conn.Dispose()   ;然后在打开数据库,就行Top

14 楼yongwc(疯狂客)回复于 2003-11-01 19:50:38 得分 0

to:91bct    
  我的程序在运行的时候是没有人在旁边看的,所以,用忽略的方法解决不了这个问题  
   
  to   zhangzgl:  
  我的程序是windows   form   程序,在asp.net   中没有这个问题!Top

相关问题

  • vb 连接ORACLE
  • jdbc连接oracle
  • asp连接oracle
  • Oracle连接
  • 连接ORACLE(急)
  • vb连接Oracle
  • oracle 连接问题
  • oracle 连接不上?
  • EJB中连接ORACLE?
  • oracle连接问题

关键词

  • 连接
  • 数据库
  • 数据
  • oracle
  • 解决
  • 网络
  • 程序
  • oracleconnection
  • conn
  • 错误

得分解答快速导航

  • 帖主:yongwc
  • cnwolfs
  • 513
  • rgbcn
  • 91bct
  • 91bct
  • zhangzgl

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo