现在手头有一项目 后台代码
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Query();
}
} private void Query()
{
Hashtable queryItems = new Hashtable(); DataTable dt = Organ.Query(queryItems);
GV.DataSource = dt;
GV.DataBind();
}
public string GetMonthlySalesChartHtml()
{
Hashtable queryItems = new Hashtable(); DataTable dt = Organ.Query(queryItems);
StringBuilder xmlData = new StringBuilder();
xmlData.Append("<chart caption='Monthly Unit Sales' xAxisName='Month' yAxisName='Units' showValues='0' formatNumberScale='0' showBorder='1'>");
for (int i = 0; i < dt.Rows .Count ; i++)
{
xmlData.AppendFormat("<set label='{0}'value= '{1}'/>", dt.Rows[i]["ORGANAME"].ToString(), dt.Rows[i]["ORGANID"].ToString());
}
xmlData.Append("</chart>"); return FusionCharts.RenderChartHTML("http://192.168.1.199/ib/Charts/Column3D.swf", "", xmlData.ToString(), "myNext", "600", "300", false);
}
页面代码
<div>
<asp:GridView ID="GV" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="ORGANID" HeaderText="编号" />
<asp:BoundField DataField="ORGANAME" HeaderText="部门" />
</Columns>
</asp:GridView>
<br />
<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
<div>
<%=GetMonthlySalesChartHtml()%>
<% %>>
</div>方法Query() 和GetMonthlySalesChartHtml()
用的都是同一个数据
方法Query()这个在页面绑定了的GridView
GetMonthlySalesChartHtml()页面显示flash图表
但是这查询了2次数据库 由于数据都是一样的 请问如何能够做到只查询一次
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Query();
}
} private void Query()
{
Hashtable queryItems = new Hashtable(); DataTable dt = Organ.Query(queryItems);
GV.DataSource = dt;
GV.DataBind();
}
public string GetMonthlySalesChartHtml()
{
Hashtable queryItems = new Hashtable(); DataTable dt = Organ.Query(queryItems);
StringBuilder xmlData = new StringBuilder();
xmlData.Append("<chart caption='Monthly Unit Sales' xAxisName='Month' yAxisName='Units' showValues='0' formatNumberScale='0' showBorder='1'>");
for (int i = 0; i < dt.Rows .Count ; i++)
{
xmlData.AppendFormat("<set label='{0}'value= '{1}'/>", dt.Rows[i]["ORGANAME"].ToString(), dt.Rows[i]["ORGANID"].ToString());
}
xmlData.Append("</chart>"); return FusionCharts.RenderChartHTML("http://192.168.1.199/ib/Charts/Column3D.swf", "", xmlData.ToString(), "myNext", "600", "300", false);
}
页面代码
<div>
<asp:GridView ID="GV" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="ORGANID" HeaderText="编号" />
<asp:BoundField DataField="ORGANAME" HeaderText="部门" />
</Columns>
</asp:GridView>
<br />
<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
<div>
<%=GetMonthlySalesChartHtml()%>
<% %>>
</div>方法Query() 和GetMonthlySalesChartHtml()
用的都是同一个数据
方法Query()这个在页面绑定了的GridView
GetMonthlySalesChartHtml()页面显示flash图表
但是这查询了2次数据库 由于数据都是一样的 请问如何能够做到只查询一次
可以加个缓存
{
if (!Page.IsPostBack)
{
dt = Organ.Query(queryItems); Query();
}
} private void Query()
{
Hashtable queryItems = new Hashtable(); //DataTable dt = Organ.Query(queryItems);
GV.DataSource = dt;
GV.DataBind();
}
public string GetMonthlySalesChartHtml()
{
//Hashtable queryItems = new Hashtable(); //DataTable dt = Organ.Query(queryItems);
StringBuilder xmlData = new StringBuilder();
xmlData.Append("<chart caption='Monthly Unit Sales' xAxisName='Month' yAxisName='Units' showValues='0' formatNumberScale='0' showBorder='1'>");
for (int i = 0; i < dt.Rows .Count ; i++)
{
xmlData.AppendFormat("<set label='{0}'value= '{1}'/>", dt.Rows[i]["ORGANAME"].ToString(), dt.Rows[i]["ORGANID"].ToString());
}
xmlData.Append("</chart>"); return FusionCharts.RenderChartHTML("http://192.168.1.199/ib/Charts/Column3D.swf", "", xmlData.ToString(), "myNext", "600", "300", false);
}