那可能这种方法不行,只好用sesion保存或cache保存。DataSet categorySet = (Set)Cache[KEY_CATEGORYSET]; if (null == categorySet) { // // There's no data in the cache, so load it and cache it Fill the dataset categorySet = // Now cache the data for an hour // Cache.Insert(KEY_CATEGORYSET, categorySet); }
DataSet categorySet = (DataSet)Cache["KEY_CATEGORYSET"]; //KEY_CATEGORYSET is string
to dragon2002: 能写一个具体的例子给我看看吗?怎样使用Cache?
Property ds() As DataSet Get Return Session("MYDS") End Get Set(ByVal Value As DataSet) Session("MYDS") = Value End Set End Property
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Data.SqlClient ; namespace testxmlsuc { /// <summary> /// WebForm3 的摘要说明。 /// </summary> public class WebForm3 : System.Web.UI.Page { protected System.Web.UI.WebControls.Button Button1; protected System.Web.UI.WebControls.DataGrid DataGrid1; // DataSet categorySet=new DataSet(); private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 DataSet categorySet = (DataSet)Cache["DataSetname"]; if (null == categorySet) { // There's no data in the cache, so load it and cache it Fill the dataset SqlConnection conn= new SqlConnection("server=yourservernmae;uid=sa;pwd=;database=testcdd"); SqlDataAdapter myada= new SqlDataAdapter("select * from class",conn); // DataSet mydata=new DataSet(); // myada.Fill(mydata,"class"); categorySet =new DataSet(); myada.Fill(categorySet,"class"); // Now cache the data for an hour Cache.Insert("DataSetname", categorySet); } //DataGrid1.DataSource=categorySet; //DataGrid1.DataBind(); } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); }
放在session中;
注:页面post以后,public的值会丢失。
if (null == categorySet)
{
//
// There's no data in the cache, so load it and cache it Fill the dataset
categorySet =
// Now cache the data for an hour
//
Cache.Insert(KEY_CATEGORYSET, categorySet);
}
//KEY_CATEGORYSET is string
能写一个具体的例子给我看看吗?怎样使用Cache?
Get
Return Session("MYDS")
End Get
Set(ByVal Value As DataSet)
Session("MYDS") = Value
End Set
End Property
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient ;
namespace testxmlsuc
{
/// <summary>
/// WebForm3 的摘要说明。
/// </summary>
public class WebForm3 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.DataGrid DataGrid1;
// DataSet categorySet=new DataSet();
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面 DataSet categorySet = (DataSet)Cache["DataSetname"];
if (null == categorySet)
{
// There's no data in the cache, so load it and cache it Fill the dataset
SqlConnection conn= new SqlConnection("server=yourservernmae;uid=sa;pwd=;database=testcdd");
SqlDataAdapter myada= new SqlDataAdapter("select * from class",conn);
// DataSet mydata=new DataSet();
// myada.Fill(mydata,"class");
categorySet =new DataSet();
myada.Fill(categorySet,"class");
// Now cache the data for an hour
Cache.Insert("DataSetname", categorySet);
}
//DataGrid1.DataSource=categorySet;
//DataGrid1.DataBind();
} #region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DataGrid1.SelectedIndexChanged += new System.EventHandler(this.DataGrid1_SelectedIndexChanged);
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
{
} private void Button1_Click(object sender, System.EventArgs e)
{
DataSet categorySet = (DataSet)Cache["DataSetname"];
DataGrid1.DataSource=categorySet;
DataGrid1.DataBind();
}
}
}
在定义的方法中返回的是DataSet
如:
public DataSet Get_all_cjb()
{
if (brokerConn.State.ToString()=="Closed")
{
brokerConn.Open();
}
SqlDataAdapter jjrDa=new SqlDataAdapter("select * from broker_BMB",brokerConn);
DataSet jjrds=new DataSet();
jjrDa.Fill(jjrds,"allcjb");
brokerConn.Close();
return jjrds;
}调用的时候
DataSet ds=Get_all_cjb();
在使用就没有问题了