OracleDataAdapter.Fill()处于无限等待中 【已解决】

今天调试程序,搞了半天,没发现问题在哪儿,最后突然发现,OracleDataAdapter.Fill()一直处于等待中,这尼玛,查询的结

果集才几条数据啊,怎么会这样???sql语句在plsql里面执

行无误,哎,不知如何是好,网上也没查到具体原因。

先记录在这里。


—华丽的分割线——终于解决啦!!!———见下——


情形:OracleDataAdapter.Fill()  或者datareader 均不能查询出数据,结果仔细检查,发现sql语句中查询的某两个字段去掉后,就可以正常查询了,于是,问题肯定就是出在那两个字段上,但看了那两个字段的类型和属性,貌似没发现什么异常啊,于是只有将整张表中的数据清空,再将那两个字段从表中删掉,之后,从新编辑表,加上那两个字段,之后,问题解决了,一切OK!


总结:这个问题出的莫名其妙,只有一种解释:数据库迁移过程中出了点问题。(几天前我刚把数据库迁移到这台测试服务器)


------情况又出现了续集,就在上面写的解决方案第二天,又莫名奇妙的出现了查不出数据的问题,这下终于搞明白了,问题是出在那两个字段,但不是由于数据库迁移造成的,而是程序在写入数据库时,将异常值或非法值写入了这两个字段,导致查询不出来,额的个神------



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
需要.net4平台,引用之后,访问工具类示例: using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using System.Security.Cryptography; using System.IO; using Oracle.ManagedDataAccess.Client; namespace DBconnection { public class DBHelper { /// <summary> /// 读取数据库连接 /// </summary> public static readonly string OracleConnectionStr = @"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.9.211)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=HIS)));Persist Security Info=True;User ID=ZLHIS;Password=o15ntu;"; /// <summary> /// 集合查询:在此完成所有的集合类型查询 /// </summary> /// <param name="sqlQuery">查询语句</param> /// <returns>结果集合</returns> public static DataSet OracleFillTable(string sqlQuery) { using (OracleConnection con = new OracleConnection(OracleConnectionStr)) { //创建数据适配器,将查询语句及连接字符串两个参数传进数据适配器 con.Open(); OracleCommand cmd = con.CreateCommand(); cmd.CommandText = sqlQuery; //新建一个表格对象dt,用来获取查询的数据 DataSet ds = new DataSet(); try { //填充表格 OracleDataAdapter oda = new OracleDataAdapter(cmd); oda.Fill(ds); //如果查询无误,则返回查询出的数据 return ds; } catch { //执行查询出现错误,返回null值 return null; } finally { //主动销毁所用的资源 ds.Dispose(); cmd.Dispose(); // 关闭连接 con.Close(); } } } /// <summary> /// 集合查询:在此完成所有的集合类型查询 /// </summary> /// <param name="sqlQuery">查询语句</param> /// <returns>结果集合</returns> public static string OracleGetTable(string sqlQuery) { string result = null; try { using (OracleConnection con = new OracleConnection(OracleConnectionStr)) { OracleCommand cmd = con.CreateCommand(); try { con.Open(); cmd.CommandText = sqlQuery; try { //执行sql语句 result = cmd.ExecuteScalar().ToString(); } catch { result = "-1"; } } catch (Exception e) { throw new Exception("数据库连接出现错误!"); } finally { //主动销毁资源 cmd.Dispose(); // 关闭连接 con.Close(); } } } catch (Exception e) { // MessageBox.Show(e.ToString()); } return result; } } }
### 回答1: C# OracleDataAdapter是一个用于连接Oracle数据库的数据适配器,它可以将数据库的数据填充到DataSet,也可以将DataSet的数据更新到数据库。使用C# OracleDataAdapter可以方便地进行数据库操作,如查询、插入、更新和删除等。同时,它还支持事务处理和数据缓存等功能,可以提高数据库操作的效率和安全性。 ### 回答2: C是一种高级编程语言。它由美国贝尔实验室的丹尼斯·里奇在20世纪70年代开发的。C语言是一种通用的、结构化的、面向过程的编程语言。它的设计目标是提供一种简单而高效的编程语言,以便于编写系统软件,如操作系统和编译器。 C语言具有很多特点。首先,它具有高度的可移植性,即可以在不同的计算机平台上运行。其次,它具有较高的性能,可以实现底层的系统控制和硬件操作。此外,C语言还具有强大的灵活性,可以通过函数的调用和模块的组合,轻松实现复杂的程序功能。 C语言在软件开发有很广泛的应用。首先,它是许多其他编程语言和软件工具的基础,如C++、Java和Python。其次,C语言在操作系统、嵌入式系统、网络编程和科学计算等领域被广泛使用。最后,C语言还提供了许多标准库函数,可以方便地处理文件、字符串、日期等常见的操作。 总的来说,C语言是一种强大而广泛应用的编程语言。它的设计简单而高效,具有良好的可移植性和性能。通过学习和掌握C语言,程序员可以更好地理解计算机系统的工作原理,提升编程能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值