application 里面存一个arraylist 每隔一个时间刷新这个值,可以更快的做搜索等
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.Security;

using System.Data.SqlClient;
using System.Threading;
using System.Collections;
using Microsoft.ApplicationBlocks.Data;
using System.ComponentModel;





/**//// <summary>
/// GetMsg 篕璶磞瓃
/// </summary>
public class Tip

...{
private static readonly Tip _ScheduledTask = null;
private Timer UpdateTimer = null; //
private int Interval =2000;
private int _IsRunning;
static Tip()

...{
_ScheduledTask = new Tip();
}
public static Tip Instance()

...{
return _ScheduledTask;
}

public void Start()

...{
if (UpdateTimer == null)

...{
UpdateTimer = new Timer(new TimerCallback(UpdateTimerCallback), null, Interval, Interval);
}
}

public class Item

...{
public Item(string text, string value)

...{
this._text = text;
this._value = value;
}

private string _text;
public string Text

...{
get

...{
return _text;
}
}

private string _value;
public string Value

...{
get

...{
return _value;
}
}
}

private void UpdateTimerCallback(object sender)

...{
if (Interlocked.Exchange(ref _IsRunning, 1) == 0)

...{
try

...{
DFS.Web.Global.GlobalArr = FindWork();
}
catch

...{
}
finally

...{
Interlocked.Exchange(ref _IsRunning, 0);
}
}
}


public void Stop()

...{
if (UpdateTimer != null)

...{
UpdateTimer.Dispose();
UpdateTimer = null;
}
}
private ArrayList FindWork()

...{
ArrayList arr =new ArrayList();
string SQL = "select F1001,F1009 from F1 order by F1001 asc";
SqlDataReader reader;
reader = SqlHelper.ExecuteReader(MyConfig.MyConfigSectionHandler.ConnectionString,CommandType.Text,SQL);
while(reader.Read())

...{
arr.Add(new Item(reader["F1001"].ToString(),reader["F1009"].ToString()));
}
reader.Close();

return arr;
}


}


global.cs
protected void Application_Start(Object sender, EventArgs e)
{
System.Configuration.ConfigurationSettings.GetConfig("myConfig");
Tip.Instance().Start();
protected void Application_End(Object sender, EventArgs e)
{
Tip.Instance().Stop();
}