为什么我的这个程序,每刷新一下页面,数据库查询的数据就会多显示一次
函数:publicDataTableGetRecord(Stringsql){try{scom.Connection=dbconfig.con;scom.CommandT...
函数:
public DataTable GetRecord(String sql){
try
{
scom.Connection = dbconfig.con;
scom.CommandText = sql;
da.SelectCommand = scom;
da.Fill(ds, "mytable");
tb = ds.Tables["mytable"];
return tb;
}
catch (SqlException e)
{
throw e;
}
finally
{
dbconfig.con.Close();
}
}
调用:
public partial class _Default : System.Web.UI.Page
{
protected DataTable dt = new DataTable();
protected dbbase dbbase1 = new dbbase();
protected void Page_Load(object sender, EventArgs e)
{
String sql = "select * from sys_menu";
dt = dbbase1.GetRecord(sql);
}
}
aspx页面:
<body>
<%
foreach (System.Data.DataRow row in dt.Rows){
Response.Write(row["menu_name"]);
}
%>
</body>
第一次打开页面显示:
系统管理
刷新一下页面显示:
系统管理 系统管理
刷新50次 页面就显示50个 系统管理
哪位高手给指点下,这是咋回事啊?本人新手,刚学,想不明白 展开
public DataTable GetRecord(String sql){
try
{
scom.Connection = dbconfig.con;
scom.CommandText = sql;
da.SelectCommand = scom;
da.Fill(ds, "mytable");
tb = ds.Tables["mytable"];
return tb;
}
catch (SqlException e)
{
throw e;
}
finally
{
dbconfig.con.Close();
}
}
调用:
public partial class _Default : System.Web.UI.Page
{
protected DataTable dt = new DataTable();
protected dbbase dbbase1 = new dbbase();
protected void Page_Load(object sender, EventArgs e)
{
String sql = "select * from sys_menu";
dt = dbbase1.GetRecord(sql);
}
}
aspx页面:
<body>
<%
foreach (System.Data.DataRow row in dt.Rows){
Response.Write(row["menu_name"]);
}
%>
</body>
第一次打开页面显示:
系统管理
刷新一下页面显示:
系统管理 系统管理
刷新50次 页面就显示50个 系统管理
哪位高手给指点下,这是咋回事啊?本人新手,刚学,想不明白 展开
展开全部
应该是因为每次刷新页面被视为回发调用了,foreach代码段每次刷新就被调用了,页面内容就不断增加了。将foreach代码段移到PageLoad方法中去,再在PageLoad方法的代码外层添加if(!IsCallBack){//你自己的代码}。这样信息设置代码就仅会在页面第一次加载时执行一次,刷新也不会重复增加信息了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询