1、只有一条,怎么可能不能使用while(dr.read())呢?
一条数据,while循环就执行一次呗//
        // 摘要:
        //     使 System.Data.IDataReader 前进到下一条记录。
        //
        // 返回结果:
        //     如果存在多个行,则为 true;否则为 false。
        bool Read();
2、使用用if(!dr.read()) 读取数据报错,怀疑你的dr是null

解决方案 »

  1.   


    是我这边的问题  
    我采用的是拼接          
      string name ="柘溪";
                string sql_name = "select * from stationinfo where stationname='" + name+"'";
                OracleCommand com = new OracleCommand(sql_name, co);
                OracleDataReader dr=com.ExecuteReader();这个查询是没有结果的  原因是在与单引号  但是不知如何解决  
      

  2.   


    是我这边的问题  
    我采用的是拼接          
      string name ="柘溪";
                string sql_name = "select * from stationinfo where stationname='" + name+"'";
                OracleCommand com = new OracleCommand(sql_name, co);
                OracleDataReader dr=com.ExecuteReader();这个查询是没有结果的  原因是在与单引号  但是不知如何解决  
    你单步调试一下,拿到sql_name的值,在数据库执行一下,为什么没有结果不就知道原因了嘛
      

  3.   

    你打开数据库语句在哪?  connection.Open();  
      

  4.   

    楼主最好还是把连接数据库封装到类里去,传入sql语句,返回datatable或dataset
    然后各种地方要连数据库,都直接用这个类就好了
    否则每个地方都自己写一大堆代码,不一定哪里就不小心漏掉了什么
      

  5.   


    是我这边的问题  
    我采用的是拼接          
      string name ="柘溪";
                string sql_name = "select * from stationinfo where stationname='" + name+"'";
                OracleCommand com = new OracleCommand(sql_name, co);
                OracleDataReader dr=com.ExecuteReader();这个查询是没有结果的  原因是在与单引号  但是不知如何解决  
    你单步调试一下,拿到sql_name的值,在数据库执行一下,为什么没有结果不就知道原因了嘛做了 是没有问题的  能查到结果
      

  6.   


    问题就是处在汉字问题上 
    http://bbs.csdn.net/topics/330097760
      

  7.   


    string name ="柘溪";
                string sql_name = "select * from stationinfo where stationname='" + name+"'";         
        OracleCommand com = new OracleCommand(sql_name, co);
            DataSet     ds = new DataSet();
                myCommand.Fill(ds);
            s = ds.Tables[0].Rows[0][0].ToString() ;//一条数据   //多的数据
       for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                     s = ds.Tables[0].Rows[i][0].ToString() ;
                }
      

  8.   

    if(!dr.read())  是不是这个问题if(!(dr.read())) 
      

  9.   

    把你语句放到PLSQL执行看有没有结果啊