自定义了一个方法,始终报错,提示 ————并非所有的代码路径都返回值??分析了很久,也没有找到症结,求高手指点??
       //自定义DtReslut()方法从某个位置取出一条信息放到DataTable中
        private DataSet DtReslut(int i)
        {
            //连接Sql server 数据库
            SqlConnection con = new SqlConnection("Data Source=PC2012030219NBS;Initial Catalog=Stud;Integrated Security=True");
            //打开数据库
            con.Open();
            //得到记录数(Count的值)
            try
            {
                SqlCommand command = new SqlCommand("select count(*) from T_classInfo", con);
                Count = (int)command.ExecuteNonQuery();
                //获取信息
                SqlDataAdapter da = new SqlDataAdapter();
                da.SelectCommand = new SqlCommand("select * from T_classInfo", con);
                DataSet ds = new DataSet();
                //da.Fill(ds, i, i + 1, "T_classInfo");
                da.Fill(ds);
                //return ds; //返回Dataset对象
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                con.Close();//关闭数据库连接
            }
        }

解决方案 »

  1.   


    不好意思啊,原文中return ds;没有注释
      

  2.   

     //return ds; //返回Dataset对象注释掉了当然出错了private DataSet DtReslut(int i)
      

  3.   

    实在不行就这样.
      DataSet ds = new DataSet();
    //连接Sql server 数据库
      SqlConnection con = new SqlConnection("Data Source=PC2012030219NBS;Initial Catalog=Stud;Integrated Security=True");
      //打开数据库
      con.Open();
      //得到记录数(Count的值)
      try
      {
      SqlCommand command = new SqlCommand("select count(*) from T_classInfo", con);
      Count = (int)command.ExecuteNonQuery();
      //获取信息
      SqlDataAdapter da = new SqlDataAdapter();
      da.SelectCommand = new SqlCommand("select * from T_classInfo", con);  //da.Fill(ds, i, i + 1, "T_classInfo");
      da.Fill(ds);
      }
      catch(Exception ex)
      {
      MessageBox.Show(ex.Message);
      }
      finally
      {
      con.Close();//关闭数据库连接
      }
      }return ds; //返回Dataset对象
      

  4.   

    catch(Exception ex)
      {
      MessageBox.Show(ex.Message);
    return null;
      }
      

  5.   

    try...
    代码错误直接捕捉异常,到Catch里了,
    所以你的代码,有可能没有return 值。
    像“孟子”写的就行了。
    不过这样的ADO操作一般写在数据层,所以Catch里直接Throw就行了,“MessageBox.Show”在画面层调用的时候再弹出。
      

  6.   

    包括一些条件语句,在每个条件后都要加上return,因为每个条件都有可能满足,但如果满足该条件又没有返回值就会报此错误。
      

  7.   

     catch(Exception ex)
      {
      MessageBox.Show(ex.Message);return null;
      }
      

  8.   

    一般在编写这种代码的时候要把所有的路径自己走一遍
    保证每个地方都有return就好了~~
    VS都提示了其实还是挺好找的
      

  9.   


    try
    {}
    catct
    {
      return null;
    }
      

  10.   

    catch里不返回值就抛异常吧。
      

  11.   

    catch中要有return语句和函数的最后一个return语句。就OK了。