public SqlDataReader GetDataSetByStr(string str)
        {           
                try
                {
                    objSqlCon.Open();
                    objSqlCom = new SqlCommand(str, objSqlCon);
                    objSqlCom.CommandType = CommandType.Text;
                    objSqlDataReader = objSqlCom.ExecuteReader();
                    return objSqlDataReader;
                }catch (Exception e2)
                {
                    Console.WriteLine(e2.Message);
                }
                finally 
                {
                    if (objSqlCon != null)
                    {
                        objSqlCon.Close();
                    }
                }            
          }   
错误提示:BookManage。DataAccess.GetDataSetByStr(string ) 并非所有的路径都返回值

解决方案 »

  1.   

    如果在try语句块执行的过程中,还没到达return objSqlDataReader的时候发生异常,那你的函数是没有返回值的。
      

  2.   

    将return objSqlDataReader; 放到finally 后面
      

  3.   

    返回这样的DataReader有用处吗?
      

  4.   

     public SqlDataReader GetDataSetByStr(string str) 
            {          
                    try 
                    { 
                        objSqlCon.Open(); 
                        objSqlCom = new SqlCommand(str, objSqlCon); 
                        objSqlCom.CommandType = CommandType.Text; 
                        objSqlDataReader = objSqlCom.ExecuteReader();                    
                    }catch (Exception e2) 
                    { 
                        Console.WriteLine(e2.Message); 
                    } 
                    finally 
                    { 
                        if (objSqlCon != null) 
                        { 
                            objSqlCon.Close(); 
                        } 
                       return objSqlDataReader; 
                    }            
              }    
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  5.   

    按照一般的理解,如果程序出现异常那么返回值已经没什么意思,所以在最后加一句:return null; 就行了。
      

  6.   

     public SqlDataReader GetDataSetByStr(string str) 
            {          
                    try 
                    { 
                        objSqlCon.Open(); 
                        objSqlCom = new SqlCommand(str, objSqlCon); 
                        objSqlCom.CommandType = CommandType.Text; 
                        objSqlDataReader = objSqlCom.ExecuteReader();                    
                    }catch (Exception e2) 
                    { 
                        Console.WriteLine(e2.Message); 
                    } 
                    finally 
                    { 
                        if (objSqlCon != null) 
                        { 
                            objSqlCon.Close(); 
                        } 
                       return objSqlDataReader; 
                    }            
              }    
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  7.   

    我上面的程序有个很大的bug~~~~,不应该有finally,关闭了数据库,在调用该方法的窗体代码中就无法获取数据了~~~~