前臺代碼:
<form id="form1" runat="server">
??? <div>
??????? 見面時間:<asp:TextBox ID="MeetTime" runat="server"></asp:TextBox><br />
??????? 見面地點:<asp:TextBox ID="MeetAddress" runat="server"></asp:TextBox><br />
??????? 當天天氣:<asp:TextBox ID="MeetWeather" runat="server"></asp:TextBox><br />
??????? 就餐地點:<asp:TextBox ID="EatAddress" runat="server"></asp:TextBox><br />
??????? <asp:Button ID="btnSave" runat="server" Text="保存" οnclick="btnSave_Click" /><br />
??????? 查找鍵的值: <asp:TextBox ID="FindKey" runat="server"></asp:TextBox>
??????? <asp:Button ID="btnFindKey" runat="server" Text="查找鍵值"
??????????? οnclick="btnFindKey_Click" /><br />
??????? <asp:Button ID="btnShowKey" runat="server" Text="顯示所有的鍵"
??????????? οnclick="btnShowKey_Click" /><br />
??????? <asp:Button ID="btnIsExist" runat="server" Text="判斷某個要素是否存在"
??????????? οnclick="btnIsExist_Click" />
??? </div>
??? </form>
?
后臺:
protected void btnSave_Click(object sender, EventArgs e)
??????? {
??????????? ClassLibrary1.IMeetYou meet = GetType();
??????????? meet.SetInfo("MeetTime", MeetTime.Text);
??????????? meet.SetInfo("MeetAddress", MeetAddress.Text);
??????????? meet.SetInfo("MeetWeather", MeetWeather.Text);
??????????? meet.SetInfo("EatAddress", EatAddress.Text);
??????????? ViewState["meet"] = meet;
??????? }
??????? protected void btnFindKey_Click(object sender, EventArgs e)
??????? {
??????????? if (ViewState["meet"] != null)
??????????? {
??????????????? IMeetYou meet = ViewState["meet"] as IMeetYou;
??????????????? string meetValue = meet.GetInfo(FindKey.Text);
??????????????? Response.Write(meetValue);
??????????? }
??????? }
??????? protected void btnShowKey_Click(object sender, EventArgs e)
??????? {
??????????? if (ViewState["meet"] != null)
??????????? {
??????????????? IMeetYou meet = ViewState["meet"] as IMeetYou;
??????????????? string[] infos = meet.name;
??????????????? foreach (string item in infos)
??????????????? {
??????????????????? Response.Write(item + "??? ");
??????????????? }
??????????? }
??????? }
??????? protected void btnIsExist_Click(object sender, EventArgs e)
??????? {
??????????? if (ViewState["meet"] != null)
??????????? {
??????????????? IMeetYou meet = ViewState["meet"] as IMeetYou;
??????????????? Response.Write(meet.isExist("1111"));
??????????? }
??????? }
??????? private IMeetYou GetType()
??????? {
??????????? ClassLibrary1.IMeetYou meet = null;
??????????? string conType = ConfigurationManager.AppSettings["conType"];
??????????? if (conType.ToUpper() == "MEMORY")
??????????? { meet = new MemorySetting(); }
??????????? else if (conType.ToUpper() == "ENVIRONMENT")
??????????? { meet = new EnvironmentSettings(); }
??????????? else if (conType.ToUpper() == "SQLSERVER")
??????????? { meet = new SqlServerSettings(); }
??????????? return meet;
??????? }
---------------------------EnvironmentSettings.cs--------------------------
namespace ClassLibrary1
{
??? [Serializable]
???? public class EnvironmentSettings:IMeetYou
??? {
????????
??????? public void SetInfo(string name, string value)
??????? {
??????????? Environment.SetEnvironmentVariable(name, value,EnvironmentVariableTarget.User);
??????? }
??????? public string GetInfo(string name)
??????? {
?????????? return? Environment.GetEnvironmentVariable(name, EnvironmentVariableTarget.User);
??????? }
??????? public string[] name
??????? {
??????????? get {
??????????????? IDictionary dic = Environment.GetEnvironmentVariables(EnvironmentVariableTarget.User);
??????????????? List<string> list = new List<string>();
??????????????? foreach (object item in dic.Keys)
??????????????? {
??????????????????? list.Add(item.ToString());
??????????????? }
??????????????? return list.ToArray();
??????????? }
??????? }
??????? public bool isExist(string name)
??????? {
??????????? IDictionary dic = Environment.GetEnvironmentVariables(EnvironmentVariableTarget.User);
??????????? return dic.Contains(name);
??????? }
??? }
}
?
----------------------------------IMeetYou.cs---------------------------
???? public interface IMeetYou
??? {
???????? void SetInfo(string name, string value);//用來保存數據
???????? string GetInfo(string name);//根據某項的鍵,查找值
???????? string[] name { get; }//獲得所有項的值
???????? bool isExist(string name);//判斷某項的值是否存在
??? }
----------------------------------MemorySetting.cs-------------------------------
namespace ClassLibrary1
{
??? [Serializable]
???? public class MemorySetting:IMeetYou
??? {
????????
???????? Dictionary<string, string> dic = new Dictionary<string, string>();
??????? public void SetInfo(string name, string value)
??????? {
??????????? dic.Add(name, value);
??????? }
??????? public string GetInfo(string name)
??????? {
??????????? return dic[name];
??????? }
??????? public string[] name
??????? {
??????????? get { return dic.Keys.ToArray(); }
??????? }
??????? public bool isExist(string name)
??????? {
??????????? return dic.ContainsKey(name);
??????? }
??? }
}
-------------------------------SqlServerSettings.cs----------------------------
namespace ClassLibrary1
{
??? [Serializable]
??? public class SqlServerSettings:IMeetYou
??? {
???????
??????? //public IDbConnection conn = new SqlConnection(@"Data Source=.;Initial Catalog=News;Persist Security Info=True;User ID=sa;Password=111111");
??????? public void SetInfo(string name, string value)
??????? {
??????????? IDbConnection conn = new SqlConnection(@"Data Source=.;Initial Catalog=News;Persist Security Info=True;User ID=sa;Password=111111");
??????????? conn.Open();
??????????? IDbCommand cmd = conn.CreateCommand();
??????????? cmd.CommandText = "insert into T_Meet(T_MeetKey,T_MeetValue) values(@meetkey,@meetvalue)";
??????????? cmd.Parameters.Add(new SqlParameter("@meetkey",name));
??????????? cmd.Parameters.Add(new SqlParameter("@meetvalue",value));
??????????? cmd.ExecuteNonQuery();
??????????? cmd.Dispose();
??????????? conn.Dispose();
??????? }
??????? public string GetInfo(string name)
??????? {
??????????? IDbConnection conn = new SqlConnection(@"Data Source=.;Initial Catalog=News;Persist Security Info=True;User ID=sa;Password=111111");
??????????? conn.Open();
??????????? IDbCommand cmd = conn.CreateCommand();
??????????? cmd.CommandText = "select T_MeetValue from T_Meet where T_MeetKey=@meetkey";
??????????? cmd.Parameters.Add(new SqlParameter("@meetkey",name));
??????????? object obj = cmd.ExecuteScalar();
??????????? cmd.Dispose();
??????????? conn.Dispose();
??????????? return obj.ToString();
??????? }
??????? public string[] name
??????? {
??????????? get {
??????????????? IDbConnection conn = new SqlConnection(@"Data Source=.;Initial Catalog=News;Persist Security Info=True;User ID=sa;Password=111111");
??????????????? List<string> list = new List<string>();
??????????????? conn.Open();
??????????????? IDbCommand cmd = conn.CreateCommand();
??????????????? cmd.CommandText = "select T_MeetKey from T_Meet";
??????????????? IDataReader reader = cmd.ExecuteReader();
??????????????? while (reader.Read())
??????????????? {
???????????????????????? list.Add(reader["T_MeetKey"].ToString());
??????????????? }
??????????????? return list.ToArray();
??????????? }
??????? }
??????? public bool isExist(string name)
??????? {
?????????? IDbConnection conn = new SqlConnection(@"Data Source=.;Initial Catalog=News;Persist Security Info=True;User ID=sa;Password=111111");
??????????? conn.Open();
??????????? IDbCommand cmd = conn.CreateCommand();
??????????? cmd.CommandText = "select T_MeetValue from T_Meet where T_MeetKey=@meetkey";
??????????? cmd.Parameters.Add(new SqlParameter("@meetkey", name));
??????????? IDataReader read = cmd.ExecuteReader();
??????????? bool b=false;
??????????? if (read.Read())
??????????? { b = true; }
??????????? cmd.Dispose();
??????????? conn.Dispose();
??????????? return b;
??????? }
??? }
}