并非所有的代码路径都返回值
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();
}
--------------------编程问答--------------------
支持 --------------------编程问答-------------------- 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;
}
--------------------编程问答--------------------
是的,这也是我经常犯的一个毛病, --------------------编程问答-------------------- 函数没学好,好好加强! --------------------编程问答-------------------- 你的函数的返回类型是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 类型的 --------------------编程问答--------------------
UP --------------------编程问答-------------------- 谢谢楼上各位 --------------------编程问答-------------------- 返回值该成空类型,或者加return语句。 --------------------编程问答-------------------- 一个是没有返回值,另一个把 DataSource 换成dataset试下 --------------------编程问答-------------------- 看字面意思都能想取问题在哪了
补充:.NET技术 , C#