ASP.NET学习小结(1)--Cookie,XML(建立xml文档,和查找一个结点)

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值