当前位置:编程学习 > C#/ASP.NET >>

并非所有的代码路径都返回值

 public SqlDataReader GetAll()
        {
            SqlConnection conn = new SqlConnection("server=local;User ID = sa;password =;");
            
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = "select * from players";
            cmd.Connection = conn;
            conn.Open();

            SqlDataReader reader = cmd.ExecuteReader();
            this.myGrid.DataSource = reader;
            this.myGrid.DataBind();
            reader.Close();
            conn.Close();

        }
调试时老是出错:
并非所有的代码路径都返回值
和不能绑定
怎么回事? --------------------编程问答-------------------- 这个方法的返回类型是SqlDataReader,但你的代码中没有一条返回类型为SqlDataReader的return语句 --------------------编程问答-------------------- public SqlDataReader GetAll() 
修改成
public void GetAll() 
--------------------编程问答-------------------- public Void GetAll() 
        { 
            SqlConnection conn = new SqlConnection("server=local;User ID = sa;password =;"); 
            
            SqlCommand cmd = new SqlCommand(); 
            cmd.CommandText = "select * from players"; 
            cmd.Connection = conn; 
            conn.Open(); 

            SqlDataReader reader = cmd.ExecuteReader(); 
            this.myGrid.DataSource = reader; 
            this.myGrid.DataBind(); 
            reader.Close(); 
            conn.Close(); 

        } 
--------------------编程问答--------------------
引用 3 楼 asuan 的回复:
public Void GetAll()
        {
            SqlConnection conn = new SqlConnection("server=local;User ID = sa;password =;");
           
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = "select * from players";
            cmd.Connection = conn;
            conn.Open();

            SqlDataReader reader = cmd.ExecuteReader();
            this.myGrid.DataSource = reader;
            this.myGrid.DataBind();
            reader.Close();
            conn.Close();

        }

支持 --------------------编程问答-------------------- public SqlDataReader GetAll() 
这是有返回值 返回值是SqlDataReader 的函数。
你的代码没有返回值
你可以修改成
public void GetAll() {}
--------------------编程问答-------------------- 或者
public SqlDataReader GetAll() 
        { 
            SqlConnection conn = new SqlConnection("server=local;User ID = sa;password =;"); 
            
            SqlCommand cmd = new SqlCommand(); 
            cmd.CommandText = "select * from players"; 
            cmd.Connection = conn; 
            conn.Open(); 

            SqlDataReader reader = cmd.ExecuteReader(); 
            this.myGrid.DataSource = reader; 
            this.myGrid.DataBind(); 
            return reader;

        } 
--------------------编程问答--------------------
引用 5 楼 jasondct 的回复:
public SqlDataReader GetAll()
这是有返回值 返回值是SqlDataReader 的函数。
你的代码没有返回值
你可以修改成
public void GetAll() {}

是的,这也是我经常犯的一个毛病, --------------------编程问答-------------------- 函数没学好,好好加强! --------------------编程问答-------------------- 你的函数的返回类型是SqlDataReader

但是你的函数最终没有 return --------------------编程问答-------------------- 除了修改返回类型为void这个建议外,还建议楼主重要写这些代码吧.......


--------------------编程问答-------------------- 删除reader.Close(); 
并在最后加上return reader; --------------------编程问答-------------------- 你得return一个SqlDataReader 类型的参数 --------------------编程问答-------------------- public SqlDataReader GetAll() 
返回SqlDataReader类型,方法的每个结束点都需要返回一个SqlDataReader类型的对象,或者空对象 --------------------编程问答-------------------- 呵呵,
既然你写成public SqlDataReader GetAll() 这样,你的函数就必须返回SqlDataReader,你的程序没返回...
改成public Void GetAll() 就好了 --------------------编程问答-------------------- public SqlDataReader GetAll() 
改成 public void GetAll() 
或在最后加上return reader --------------------编程问答-------------------- 返回值修改成为:void 类型的 --------------------编程问答--------------------
引用 2 楼 mbh0210 的回复:
public SqlDataReader GetAll()
 修改成
 public void GetAll()

UP --------------------编程问答-------------------- 谢谢楼上各位 --------------------编程问答-------------------- 返回值该成空类型,或者加return语句。 --------------------编程问答-------------------- 一个是没有返回值,另一个把 DataSource 换成dataset试下 --------------------编程问答-------------------- 看字面意思都能想取问题在哪了
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,