public static  OleDbDataReader   Executereader1(string strSQL) 
        {
            OleDbConnection myconn = new OleDbConnection(conn);
            OleDbCommand mycmd = new OleDbCommand(strSQL,myconn);
            
            
            try
            {
                myconn.Open();
                OleDbDataReader myreader = mycmd.ExecuteReader();
                //return myreader;
                return myreader;            }
            catch(Exception e)
            {
                MessageBox.Show("数据库执行异常,出现的错误原因是:" + e.ToString());
                return myreader;            }
                
            finally
            {
                myconn.Close();
            }        }
错误信息,D:\产品\product manage\product manage\sql.cs(65): 名称“myreader”在类或命名空间“SqlLib.SqlHelper”中不存在

解决方案 »

  1.   

    OleDbDataReader 是在System.Data.OleDb里面,你引用这个了吗?
      

  2.   

     catch(Exception e)
      {
      MessageBox.Show("数据库执行异常,出现的错误原因是:" + e.ToString());
      return NULL; //myreader没在这个域内声明的。  }
      

  3.   

    3楼正解,但是问题是我想返回一个datareader,写的时候不知道如何写了
      

  4.   


    取不到数据, 返回datareader也没用啊。
      

  5.   

    你如果要返回一个DataReader,照你这样的意思。你就把DataReader定义一个全局的。try catch 外
      

  6.   

    这是一个sql.cs中的一个返回OleDbDataReader的返回方法,正常执行肯定可以返回,但是如果出现异常了,我不知道该怎么写返回语句了,或者我直接删除了catch异常,但是那样就违背我的本意了。
      

  7.   

    问题是出现了未赋值的myreader ,有没有好的直接改变方法,我是一个c#上的菜鸟
      

  8.   

     OleDbDataReader myreader 放在try 的前面
      

  9.   

    试过了,可是出现未赋值的myreader,有没有其他方法?在线等
      

  10.   

    将 OleDbDataReader myreader 放在try的前面
      

  11.   

    将 OleDbDataReader myreader = new  OleDbDataReader ()放在try的前面
      

  12.   

    异常的时候返回一个NULL,上层程序调用的时候接收到返回值先判断一下是不是NULL不就可以了,不是的话再进行下一步操作
      

  13.   


    ▪ 什么是适合云计算的微服务器?▪ 现在有SOA与云计算相结合的相关...▪ 物联网云的体系结构是怎样的?▪ 云计算是如何对IT基础设施产生...▪ CIO对云计算的顾虑?public static OleDbDataReader Executereader1(string strSQL)  
      {
      OleDbConnection myconn = new OleDbConnection(conn);
      OleDbCommand mycmd = new OleDbCommand(strSQL,myconn);
        OleDbDataReader myreader = new OleDbDataReader();
        
      try
      {
      myconn.Open();
      myreader = mycmd.ExecuteReader();
      //return myreader;
      return myreader;  }
      catch(Exception e)
      {
      MessageBox.Show("数据库执行异常,出现的错误原因是:" + e.ToString());
      return myreader;  }
        
      finally
      {
      myconn.Close();
      }
     
    }
      

  14.   

    D:\产品\product manage\product manage\sql.cs(53): 重载“OleDbDataReader”方法未获取“0”参数
      

  15.   

     public static  OleDbDataReader   Executereader1(string strSQL) 
            {            OleDbConnection myconn = new OleDbConnection(conn);
                OleDbCommand mycmd = new OleDbCommand(strSQL,myconn);
                OleDbDataReader myreader = new OleDbDataReader();            
                
                try
                {
                    myconn.Open();
                   myreader = mycmd.ExecuteReader();
                    return myreader;
                }
                catch(Exception e)
                {
                    MessageBox.Show("数据库执行异常,出现的错误原因是:" + e.ToString());
                    return myreader;
                      
                }
                    
                finally
                {
                    myconn.Close();
                }        }
    新代码
      

  16.   


    public static OleDbDataReader Executereader1(string strSQL)  
      {
       OleDbConnection myconn = new OleDbConnection(conn);
       OleDbCommand mycmd = new OleDbCommand(strSQL,myconn);
       try
        {
         myconn.Open();
         OleDbDataReader myreader = mycmd.ExecuteReader();
         return myreader;
        }
      catch(Exception e)
      {
        MessageBox.Show("数据库执行异常,出现的错误原因是:" + e.ToString());
        return;//这里不能用 return myreader;像3楼说的
      }
      finally
      {
        myconn.Close();
      }  }
      

  17.   

    D:\产品\product manage\product manage\sql.cs(61): 名称“NULL”在类或命名空间“SqlLib.SqlHelper”中不存在
      

  18.   

    D:\产品\product manage\product manage\sql.cs(61): 需要一个类型可转换为“System.Data.OleDb.OleDbDataReader”的对象
      

  19.   

       public static OleDbDataReader Executereader1(string strSQL)
            {            OleDbConnection myconn = new OleDbConnection("");
                OleDbCommand mycmd = new OleDbCommand(strSQL, myconn);
                OleDbDataReader myreader = null;
                try
                {
                    myconn.Open();
                    myreader = mycmd.ExecuteReader();
                    return myreader;
                }
                catch (Exception e)
                {
                    MessageBox.Show("数据库执行异常,出现的错误原因是:" + e.ToString());
                    return myreader;
                }            finally
                {
                    myconn.Close();
                }
            }
      

  20.   

    调用这个Executereader1后 要要做判断 是不是NULL
    如:OleDbDataReader myreader = Executereader1("");
    if(myreader == null)
    {
       return;
    }
      

  21.   

    SqlLib.SqlHelper这个类你贴出来看一下
      

  22.   


    public static OleDbDataReader Executereader1(string strSQL)  
      {
       OleDbConnection myconn = new OleDbConnection(conn);
       OleDbCommand mycmd = new OleDbCommand(strSQL,myconn);
       try
        {
         myconn.Open();
         System.Data.OleDb.OleDbDataReader myreader = mycmd.ExecuteReader();
         return myreader;
        }
      catch(Exception e)
      {
        MessageBox.Show("数据库执行异常,出现的错误原因是:" + e.ToString());
        return null;//这里不能用 return myreader;像3楼说的
      }
      finally
      {
        myconn.Close();
      }  }或者你调试跟进去看看,myreader = mycmd.ExecuteReader();有值没有?
      

  23.   

    null 小写就可以了,大写出错了,...........谢谢大家了
      

  24.   

    楼主加 System.Data.OleDb 了么  
    还有 为什么要static 呢