1.关于Cookie:
(1)制作:
private void Button3_Click(object sender, System.EventArgs e)
{
HttpCookie cookUserInfo = new HttpCookie("UserInfo", System.Guid.NewGuid().ToString());
cookUserInfo["FirstName"] = txtFirstName.Text;
cookUserInfo["LastName"] = txtLastName.Text;
cookUserInfo["Street"] = txtStreet.Text;
cookUserInfo["City"] = txtCity.Text;
cookUserInfo["State"] = txtState.Text;
cookUserInfo["ZIP"] = txtZIP.Text;
cookUserInfo.Expires = DateTime.Now.AddDays(30);
Response.Cookies.Add(cookUserInfo);
}
(2)调用:
private void Button4_Click(object sender, System.EventArgs e)
{
HttpCookie cookUserInfo = Request.Cookies["UserInfo"];
txtFirstName.Text = cookUserInfo["FirstName"];
txtLastName.Text = cookUserInfo["LastName"];
txtStreet.Text = cookUserInfo["Street"];
txtCity.Text = cookUserInfo["City"];
txtState.Text = cookUserInfo["State"];
txtZIP.Text = cookUserInfo["ZIP"];
}
(3)添加或更改内容(与XML合用):
从客户的机子上得到Cookie的ID,然后调用xml文档.接着根据这个ID来修改相应用户的信息(在xml文档里).
private void Button2_Click(object sender, System.EventArgs e)
{
HttpCookie cookUserID = Request.Cookies["UserID"];
if( cookUserID == null)
cookUserID = new HttpCookie("UserID", System.Guid.NewGuid().ToString());
cookUserID.Expires = DateTime.Now.AddDays(30);
Response.Cookies.Add(cookUserID);
SetUserInfo(cookUserID.Value);
}
private void SetUserInfo( string UserID)
{
string strPath = Server.MapPath( Request.ApplicationPath);
DataSet dsUsers = GetUserData();
DataRow rowUser = dsUsers.Tables["User"].Rows.Find(UserID);
if(rowUser == null)
{
rowUser = dsUsers.Tables["User"].NewRow();
dsUsers.Tables["User"].Rows.Add(rowUser);
}
rowUser["FirstName"] = txtFirstName.Text;
rowUser["LastName"] = txtLastName.Text;
rowUser["Street"] = txtStreet.Text;
rowUser["City"] = txtCity.Text;
rowUser["State"] = txtState.Text;
rowUser["ZIP"] = txtZIP.Text;
rowUser["ID"] = UserID;
dsUsers.WriteXml( strPath + "//UserInfo.xml" );
}
private DataSet GetUserData()
{
string strPath = Server.MapPath( Request.ApplicationPath);
DataSet dsUsers = new DataSet();
dsUsers.ReadXmlSchema( strPath + "//UserInfo.xsd" );
dsUsers.ReadXml( strPath + "//UserInfo.xml" );
return dsUsers;
}
2.关于XML操作:
(1)建立一个.xml文件
private void Button1_Click(object sender, System.EventArgs e)
{
XmlTextWriter xtw = new XmlTextWriter( Request.PhysicalApplicationPath + "wxd.xml",System.Text.Encoding.UTF8 );
xtw.Formatting = Formatting.Indented;
xtw.WriteStartDocument(true);
//结果:
xtw.WriteComment("wxdInfomation");
//文档注释 结果:
xtw.WriteStartElement("Info");
//XML Root 节点 结果:
xtw.WriteStartElement("Employee",null);
//XML 元素1 结果:
xtw.WriteElementString("ID","1");
//XML 元素1 键值 结果: 0301
xtw.WriteElementString( "Name", "王菁" );
//XML 元素1 键值 结果:1
xtw.WriteElementString("Phone","111");
//XML 元素1 键值 结果:100
xtw.WriteEndElement();
//XML 元素1 结束 结果:
xtw.Flush();
xtw.WriteStartElement("Employer",null);
//XML 元素2 结果:
xtw.WriteAttributeString("ID","1");
xtw.WriteAttributeString("Name","王小迪");
xtw.WriteAttributeString("Phone","000");
//XML 元素2 属性 结果:
xtw.WriteEndElement();
//XML 元素2 结束 结果:
xtw.WriteEndElement();
//XML Root 结束 结果:
xtw.Flush();
xtw.Close();//释放资源
}
建立的.xml如下:
<?xml version="1.0" standalone="yes"?>
<!wxdInfomation>
<Info>
<Employee>
<ID>1</ID>
<Name>王菁</Name>
<Phone>111</Phone>
</Employee>
<Employer ID="1" Name="王小迪" Phone="000" />
</Info>
(2)查找xml中的一个结点的值:(通过asp.net显示在一个TextBox中)
private void SearchElement( String id, ref String emladr )
{
const String filename = "record.xml";
XmlTextReader reader = new XmlTextReader( filename );
while( reader.Read() )
{
if( reader.NodeType == XmlNodeType.Element )
{
if( reader.Name.Equals( "ID" ) && reader.Depth == 2 )
{
reader.Read();
if ( id.Equals( reader.Value.ToString() ) )
{
while( reader.Read() )
{
if( reader.NodeType == XmlNodeType.Element )
{
if( reader.Name.Equals( "Recipient" ) && reader.Depth == 2 )
{
reader.Read();
emladr = reader.Value.ToString();
break;
}
}
}
break;
}
}
}
}
}
private void Button2_Click(object sender, System.EventArgs e)
{
String id;
String emladr = "";
id = InputID.Text.ToString();
SearchElement( id, ref emladr );
OutputEml.Text = emladr.ToString();
}
详细的还要注意看msdn