为什么DataSet受保护无法访问
public class menu : System.Web.UI.UserControl
{
DataSet pDS;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!this.IsPostBack)
{
WFunction pFun = new WFunction();
//加载所有菜单项
pDS = pFun.list();
//以下代码在这里能正确执行
foreach(DataRow dr in pDS.Tables[0].Rows)
{
Response.Write (dr[2].ToString());
}
}
}
}
把foreach(DataRow dr in pDS.Tables[0].Rows)
{
Response.Write (dr[2].ToString());
}
放到aspx中
<%
foreach(DataRow dr in pDS.Tables[0].Rows)
{
Response.Write (dr[2].ToString());
}
%>
总报这样的错误
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。
编译器错误信息: CS0122: 不可访问“yilin.admin.menu.pDS”,因为它受保护级别限制
源错误:
行 9: </tr>
行 10: <%
行 11: foreach(DataRow dr in pDS.Tables[0].Rows)
行 12: {
行 13: Response.Write (dr[2].ToString());
源文件: http://localhost/yilin/admin/menu.ascx 行: 11
------解决方案--------------------DataSet pDS;你声明的是个局部变量,当然不能用。
如果在aspx中引用,需要是proteced或public的成员变量。
------解决方案--------------------既然提示了它受保护级别限制
为什么不用protected呢?
aspx页面实际上上继承与cs文件的
DataSet pDS;没加任何修饰就是默认private
所以页面当然不能访问
------解决方案--------------------DataSet pDS;
改为: protected DataSet pDS;
不要动不动就去public