.aspx.cs页面中的代码如下: DataSet ds = new DataSet();
protected void Page_Load(object sender, EventArgs e)
{
//创建链接数据库
SqlConnection con = DBConnection.creatConnection();
con.Open();
//定义查询语句
string cmd = "select FunctionName,Content from GardenFunction";
SqlDataAdapter sda = new SqlDataAdapter(cmd, con);
sda.Fill(ds, "GardenFunction");
con.Close();
}
.aspx页面中的代码如下:
<table id="table11" border ="0" runat ="server">
<tr>
<td valign ="top" style="height: 18px">
<%
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
Label[] lbl = new Label[10];
lbl[i] = new Label();
lbl[i].Text = ds.Tables[0].Rows[i]["FunctionName"].ToString() ;
this.Page.Controls.Add(lbl[i]);
}
%>
</p>
</td>
</tr>
</table>
也就是想使用对象数组动态输出,可是总是出现“当前上下文不存在ds”的错误,我已经把ds定义成公共变量了啊,不知错在哪,最近总是遇到这种问题,很着急,请大家指教!
protected void Page_Load(object sender, EventArgs e)
{
//创建链接数据库
SqlConnection con = DBConnection.creatConnection();
con.Open();
//定义查询语句
string cmd = "select FunctionName,Content from GardenFunction";
SqlDataAdapter sda = new SqlDataAdapter(cmd, con);
sda.Fill(ds, "GardenFunction");
con.Close();
}
.aspx页面中的代码如下:
<table id="table11" border ="0" runat ="server">
<tr>
<td valign ="top" style="height: 18px">
<%
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
Label[] lbl = new Label[10];
lbl[i] = new Label();
lbl[i].Text = ds.Tables[0].Rows[i]["FunctionName"].ToString() ;
this.Page.Controls.Add(lbl[i]);
}
%>
</p>
</td>
</tr>
</table>
也就是想使用对象数组动态输出,可是总是出现“当前上下文不存在ds”的错误,我已经把ds定义成公共变量了啊,不知错在哪,最近总是遇到这种问题,很着急,请大家指教!
//DataSet ds = new DataSet(); //默认是private
public DataSet ds = new DataSet();
<tr>
<td valign ="top" style="height: 18px">
<%
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
Label[] lbl = new Label[10];
lbl[i] = new Label();
lbl[i].Text = ds.Tables[0].Rows[i]["FunctionName"].ToString() ;
this.Page.Controls.Add(lbl[i]);
}
%>
</p>
</td>
</tr>
</table>
-----------------------------------------------------------------------------------------------
这段我觉得改为
<table id="table11" border ="0"
<tr>
<td valign ="top" style="height: 18px" runat ="server"> id="td1">
</td>
</tr>
</table> 后台用StringBuilder来构造下面这段,然后用td1.InnerHTML = "";这样方式比较好
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
Label[] lbl = new Label[10];
lbl[i] = new Label();
lbl[i].Text = ds.Tables[0].Rows[i]["FunctionName"].ToString() ;
this.Page.Controls.Add(lbl[i]);
}
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append(ds.Tables[0].Rows[i]["Content"].ToString());
td1.InnerHtml = sb.ToString();
}
运行之后只能显示最后一条数据,之前的都不能显示,是哪错了?
System.Text.StringBuilder sb = new System.Text.StringBuilder();
放循环外面
在.aspx页 访问 .cs 中的成员,需要该成员的访问级别在protected或以上级别