??????????? Conn.Open();
??????????? OleDbCommand cmd;
??????????? cmd = new OleDbCommand(sql, Conn);
??????????? GridView1.DataSource = dbcenter.accessGetDataSet(sql);
??????????? GridView1.DataBind();
???????? Conn.close();
但如果多個數據控件要綁定數據,則比較頻繁打開數據庫,效率一定大打折扣了。
所以我們要用上cache,并巧妙利用DataView 獲取數據
原來代碼
string sql = "select * from dbs where inf_type='ok' order by news_no desc";
???????? string sql2 = "select * from dbs where inf_type='chinese' order by news_no desc";
???????? string sql3 = "select * from dbs where inf_type='english' order by news_no desc";
????????? string sql4.....
OleDbConnection Conn = cs.Acce_Conn();
Conn.Open();
??????????? OleDbCommand cmd;
??????????? cmd = new OleDbCommand(sql, Conn);
??????????? GridView1.DataSource = cs.accessGetDataSet(sql);
??????????? GridView1.DataBind();
??????????? GridView2.DataSource = cs.accessGetDataSet(sql2);
??????????? GridView2.DataBind();
??????????? GridView3.DataSource = cs.accessGetDataSet(sql3);
??????????? GridView3.DataBind();
??????????? GridView4.DataSource = cs.accessGetDataSet(sql4);
??????????? GridView4.DataBind();
??????????? ...........
?if(Conn.State ==ConnectionState.Open )//如果還打開就關閉
??????? {
??????????? Conn.Close();
??????? }
修改后
??????????? OleDbConnection Conn = cs.Acce_Conn();
??????????? string strSQL = "select * from dbs order by news_no desc ";
??????????? DataSet ds = null;//定義DataSet ds
??????????? if (Cache["cache_default"] == null)?? //
??????????? {
??????????????? ds = dbcenter.accessGetDataSet(strSQL);
??????????????? Cache.Insert("cache_default", ds, null, DateTime.Now.AddMinutes(60), TimeSpan.Zero);
??????????? }
??????????? ds = (DataSet)Cache["cache_default"];// 每次讀取從cache獲得,速度快
????????????
??????????? DataView DV = ds.Tables[0].DefaultView;//獲得表視圖
??????????? DataView dv1 = DV;
??????????? DV.RowFilter = "inf_type='ok'";//用過濾rowfilter
??????????? GridView1.DataSource = dv1;
??????????? GridView1.DataBind();
??????????? DataView dv2 = DV;
??????????? DV.RowFilter = "inf_type='chinese'";
??????????? GridView2.DataSource = dv2;
??????????? GridView2.DataBind();
??????????? DataView dv3 = DV;
??????????? DV.RowFilter = "inf_type='english'";
??????????? GridView3.DataSource = dv3;
??????????? GridView3.DataBind();
.................
???????????
if(Conn.State ==ConnectionState.Open )//如果還打開就關閉
??????? {
??????????? Conn.Close();
??????? }
//詳細見default_hhh_school,特別感謝小西指導.