如果用C# + Oracle最好不用OleDbReader,因为连接关闭不了,推荐使用DataSet或DataTable等

解决方案 »

  1.   

    你可以试试Oracle.net provider,在ms网站上下载
    不要用ole了
      

  2.   

    for(i=1;i<=arrayCpuName.Count;i++)
    {

    string strCmd = "select cpuname,collecttime,ipaddr,idletime from cpu where cpuname='"+arrayCpuName[i-1].ToString()+"' and  rownum<2  order by collecttime  desc ";
    Console.WriteLine(strCmd);
    oleDbCommand=new OleDbCommand(strCmd,oleDbConnection);
    oleDbReader=oleDbCommand.ExecuteReader();while(oleDbReader.Read())
    {
    listItems[0]=oleDbReader["cpuname"].ToString();
    listItems[1]=oleDbReader["collecttime"].ToString();
    listItems[2]=oleDbReader["ipaddr"].ToString();
    listItems[3]=oleDbReader["idletime"].ToString();}
    oleDbReader.Close();listView1.Items.Insert(count,new ListViewItem(listItems));
    count++;
    }
      

  3.   

    我现在的环境就是C# + Oracle9i当时查询都是用OleDbDataReader,后来发现数据库越来越慢,最后就不能用了,用控制台一看,有很多未断开的连接即使调用了OleDbDataReader的Close方法也没用,退出程序也没有用,在找不到原因的情况下,全部换成了DataTable