回归

Shadow

  DonewsBlog  |  Donews首页  |  Donews社区  |  Donews邮箱  |  我的首页  |  联系作者  |  聚合   |  登录
  307篇文章 :: 0篇收藏:: 16篇评论:: 1个Trackbacks

文章

收藏

相册

论坛

软件

存档


正在读取评论……


2006年04月



    摘要:

文件一:1.asp

<%Response.Charset="GB2312"%>
<!--#include file="conn.asp"-->
<%
set rs=server.createobject("adodb.recordset")
rs.open("select*from youm_type order by id asc"),conn,1,1
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head>
<script language="javasc    (全文共5443字)——点击此处阅读全文





    摘要:文章工具 推荐给朋友 此处阅读全文



“无刷新页面”,只是一种不确切的效果描述(其实还有其他各种方法来实现这个效果),更确切的说法是:在页面上用JavaScript调用服务器端的一个方法,然后处理返回的数据。实现它最标准的方法当然是XMLHTTP。但是,程序员都是懒惰的家伙,每个人都希望能有更方便的方法,或者,更佳的包装。比如,LostinetRane就是对XMLHTTP的一个很好的包装。

终于,在ASP.NET 2.0里面,我们可以轻松的来做到这点了。服务器端任何实现了System.Web.UI.ICallbackEventHandler接口的控件,都可以通过RaiseCallbackEvent()方法来处理从页面上的JS脚本传递过来的请求和数据,处理后,再将结果传回给页面。这项能力的底层仍然是XMLHTTP。

下面是一个简单的演示:

在页面上,我们放上两个文本框和一个按钮:
<INPUT id="txtMessage">
<INPUT onclick="callToServer();" type="button" value="Call to Server">
Result : <INPUT id="txtResult" >


当点击按钮的时候,将调用JS脚本方法callToServer(),JS脚本如下:
function callToServer()
{
    var param = document.getElementById("txtUsername").value;
    var context = ""; 
    <% = ClientScript %>
}

function handleResultFromServer(result, context)
{
    document.getElementById("txtResult").value = result;
}


handleResultFromServer()方法则负责将从服务器传回的数据写到txtResult这个文本框里面。

再看看服务器端的代码:

public partial class Default_aspx : System.Web.UI.ICallbackEventHandler
{
    private String ClientScript
    {
        get
        {
            return this.GetCallbackEventReference(this, "param", "handleResultFromServer", "context");
        }
    }

    public string RaiseCallbackEvent(string eventArgument)
    {
        return "客户端在[" + DateTime.Now.ToString() + "]传送来 [" + eventArgument + "].";
    }
}

我们让页面直接实现ICallbackEventHandler接口,然后接口定义的RaiseCallbackEvent()方法中将服务器的时间和传来的数据一起返回回去。

ClientScript属性的作用是,它调用了页面的GetCallbackEventReference()方法,获得了让客户端有能力调用服务器端方法的JS脚本,并输出到页面的callToServer()方法中,这样,点击页面按钮时,就开始执行页面上包含了调用服务器方法的的callToServer()方法。

注意GetCallbackEventReference()方法的参数,在参数中,我们定义了客户端的哪个变量包含了要传递给服务器,服务器方法执行后,调用客户端的哪个方法等信息。GetCallbackEventReference()的详细参看请看这里

最后,我们这个页面的执行效果就是:




 

天气预报
地址:http://www.wopos.com/webservice/weather.asmx
介绍:使用 getWeather(city)方法:city-直接输入全国大中小城市及国外中城市中文名
例:
  Public sub GetWopWeather(ByVal city As String)
  Dim s As String
        Try
     Dim weat As New localhost.Weather
            s = weat.getWeather(city)
     If s.IndexOf("没有查到相关结果") > -1 Then
     Else
            s = s.Replace("图1==", "<img src=")
            s = s.Replace(",图2==", "></img><img src=")
            s = s.Replace(",天气", "></img>,天气")
                s = s.Replace(",", "<br/>").Replace("==", ":")
     End If
        Catch ex As Exception
            s = "提供天气数据的网络不通,请稍后再试"
        End Try
          response.write(s)
        End sub

手机归属地
地址:http://www.wopos.com/webservice/Mobile.asmx
介绍:使用 getMobileArea(mobileCode) mobileCode-手机号码或前7位

股票走势图
地址:http://www.wopos.com/webservice/Stock.asmx
介绍:使用 getStockChart(StockCode) StockCode-股票代码,返回值为图片的HTTP地址.

IP地址查询
地址:http://www.wopos.com/webservice/ips.asmx
介绍:使用 getIParea(ip)方法返回IP所在地,使用AddIPRange(startIP,EndIP,AreaInfo)增加新的IP地址信息,使用 IpToInt 和 IntToIp可对IP地址从字符串到整型的互相转换.

成语典故
地址:http://www.wopos.com/webservice/chengyu.asmx
介绍:
使用 ChengYuDianGu(chengyu)方法,参数为成语或成语的拼音缩写。如返回多个成语以*_*分隔

生成验证码图像
地址:http://www.wopos.com/webservice/vimg.asmx
介绍:使用 GetVerifyImg(str4,Lenght,Width,Style)生成一张字符图像,用于注册、发贴等场合做图像验证。后面三个参数为保留参数,暂时无效,用于以后扩充。 目前的很简单,仅供测试。

RSS种子生成
地址:http://www.wopos.com/webservice/Rss.asmx
介绍:使用 OutPutRss()方法:Rss Item数据项以DataTable 方式提供。数据项数不能超过100调用后直接输出RSS2.0 XML。
例:
Imports System.Data

    Partial Class Test : Inherits System.Web.UI.Page

   Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim tb As New DataTable
            Dim rw As DataRow
            tb.Columns.Add(New DataColumn("title", System.Type.GetType("System.String")))
            tb.Columns.Add(New DataColumn("link", System.Type.GetType("System.String")))
            tb.Columns.Add(New DataColumn("author", System.Type.GetType("System.String")))
            tb.Columns.Add(New DataColumn("pubdate", System.Type.GetType("System.String")))
            tb.Columns.Add(New DataColumn("category", System.Type.GetType("System.String")))
            tb.Columns.Add(New DataColumn("description", System.Type.GetType("System.String")))

            For i As Int16 = 0 To 10
                rw = tb.NewRow
                rw.Item("title") = "title" & i
                rw.Item("link") = "http://www.wopos.com/test.htm"
                rw.Item("author") = "author " & i
                rw.Item("pubdate") = Date.Now.ToString
                rw.Item("category") = "category " & i
                rw.Item("description") = "description " & i
                tb.Rows.Add(rw)

            Next
            Dim rss As New Rss
            rss.OutPutRss(tb, "中国新闻", "中新", "www.wopos.com", "wopos.com", "新闻", "图片", "http://www.wopos.com", "http://www.wopos.com/image/wopos.gif")

        End Sub
End Class




1、DateTime 数字型
System.DateTime currentTime=new System.DateTime();
1.1
取当前年月日时分秒
currentTime=System.DateTime.Now;
1.2
取当前年
int
=currentTime.Year;
1.3
取当前月
int
=currentTime.Month;
1.4
取当前日
int
=currentTime.Day;
1.5
取当前时
int
=currentTime.Hour;
1.6
取当前分
int
=currentTime.Minute;
1.7
取当前秒
int
=currentTime.Second;
1.8
取当前毫秒
int
毫秒=currentTime.Millisecond;
(变量可用中文)

1.9
取中文日期显示——年月日时分
string strY=currentTime.ToString("f"); //
不显示秒

1.10
取中文日期显示_年月
string strYM=currentTime.ToString("y");

1.11
取中文日期显示_月日
string strMD=currentTime.ToString("m");

1.12
取中文年月日
string strYMD=currentTime.ToString("D");

1.13
取当前时分,格式为:1424
string strT=currentTime.ToString("t");

1.14
取当前时间,格式为:2003-09-23T14:46:48
string strT=currentTime.ToString("s");

1.15
取当前时间,格式为:2003-09-23 14:48:30Z
string strT=currentTime.ToString("u");

1.16
取当前时间,格式为:2003-09-23 14:48
string strT=currentTime.ToString("g");

1.17
取当前时间,格式为:Tue, 23 Sep 2003 14:52:40 GMT
string strT=currentTime.ToString("r");

1.18
获得当前时间 n 天后的日期时间
DateTime newDay = DateTime.Now.AddDays(100);

2
Int32.Parse(变量) Int32.Parse("常量")
字符型转换 转为32位数字型

3
变量.ToString()
字符型转换 转为字符串
12345.ToString("n"); //
生成 12,345.00
12345.ToString("C"); //
生成 12,345.00
12345.ToString("e"); //
生成 1.234500e+004
12345.ToString("f4"); //
生成 12345.0000
12345.ToString("x"); //
生成 3039 (16进制)
12345.ToString("p"); //
生成 1,234,500.00%


4
、变量.Length 数字型
取字串长度:
如: string str="中国";
int Len = str.Length ; //Len
是自定义变量, str是求测的字串的变量名

5
System.Text.Encoding.Default.GetBytes(变量)
字码转换 转为比特码
如:byte[] bytStr = System.Text.Encoding.Default.GetBytes(str);
然后可得到比特长度:
len = bytStr.Length;

6
System.Text.StringBuilder("")
字符串相加,(+号是不是也一样?)
如:System.Text.StringBuilder sb = new System.Text.StringBuilder("");
sb.Append("
中华");
sb.Append("
人民");
sb.Append("
共和国");

7
、变量.Substring(参数1,参数2);
截取字串的一部分,参数1为左起始位数,参数2为截取几位。
如:string s1 = str.Substring(0,2);

8
String user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();
远程用户IP地址

9
、穿过代理服务器取远程用户真实IP地址:
if(Request.ServerVariables["HTTP_VIA"]!=null){
string user_IP=Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}else{
string user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();
}

10
Session["变量"];
存取Session值;
如,赋值: Session["username"]="小布什";

取值: Object objName=Session["username"];
String strName=objName.ToString();
清空: Session.RemoveAll();

11、String str=Request.QueryString["变量"];
用超链接传送变量。
如在任一页中建超链接:<a href="/blog/Edit.aspx?fbid=23>";点击</a>
Edit.aspx页中取值:String str=Request.QueryString["fdid"];

12
DOC对象.CreateElement("新建节点名");
创建XML文档新节点

13
、父节点.AppendChild(子节点)
将新建的子节点加到XML文档父节点下

14
父节点.RemoveChild(节点);
删除节点

15
Response
Response.Write("字串")
Response.Write(
变量)
向页面输出。

Response.Redirect("URL
地址");
跳转到URL指定的页面

16
char.IsWhiteSpce(字串变量,位数)——逻辑型
查指定位置是否空字符;
如:
string str="
中国 人民";
Response.Write(char.IsWhiteSpace(str,2)); //
结果为:True, 第一个字符是0位,2是第三个字符。

17
char.IsPunctuation('字符') --逻辑型
查字符是否是标点符号
如:Response.Write(char.IsPunctuation('A')); //返回:False

18
(int)'字符'
把字符转为数字,查代码点,注意是单引号。
如:
Response.Write((int)'
'); //结果为中字的代码:20013

19
(char)代码
把数字转为字符,查代码代表的字符。
如:
Response.Write((char)22269); //
返回字。

20
Trim()
清除字串前后空格

21
、字串变量.Replace("子字串","替换为")
字串替换
如:
string str="
中国";
str=str.Replace("
",""); //将国字换为央字
Response.Write(str); //
输出结果为中央

再如:(这个非常实用)

string str="
这是<script>脚本";
str=str.Replace("<","<font><</font>"); //
将左尖括号替换为<font> < </font> (或换为<,但估计经XML存诸后,再提出仍会还原)
Response.Write(str); //
显示为:这是<script>脚本

如果不替换,<script>将不显示,如果是一段脚本,将运行;而替换后,脚本将不运行。
这段代码的价值在于:你可以让一个文本中的所有HTML标签失效,全部显示出来,保护你的具有交互性的站点。
具体实现:将你的表单提交按钮脚本加上下面代码:
string strSubmit=label1.Text; //label1
是你让用户提交数据的控件ID
strSubmit=strSubmit.Replace("<","<font><</font>");
然后保存或输出strSubmit
用此方法还可以简单实现UBB代码。

22
Math.Max(i,j)
ij中的最大值
int x=Math.Max(5,10); // x将取值 10

23
、字串对比一般都用: if(str1==str2){ } , 但还有别的方法:

(1)
string str1; str2
//
语法: str1.EndsWith(str2); __检测字串str1是否以字串str2结尾,返回布尔值.:
if(str1.EndsWith(str2)){ Response.Write("
字串str1是以"+str2+"结束的"); }

(2)

//
语法:str1.Equals(str2); __检测字串str1是否与字串str2相等,返回布尔值,用法同上.

(3)

//
语法 Equals(str1,str2); __检测字串str1是否与字串str2相等,返回布尔值,用法同上.

24
IndexOf() LastIndexOf()
查找字串中指定字符或字串首次(最后一次)出现的位置,返回索引值,如:
str1.IndexOf("
") //查找str1中的索引值(位置)
str1.IndexOf("
字串")//查找字串的第一个字符在str1中的索引值(位置)
str1.IndexOf("
字串",3,2)//str14个字符起,查找2个字符,查找字串的第一个字符在str1中的索引值(位置)

25
Insert()
在字串中指定索引位插入指定字符。如:
str1.Insert(1,"
");str1的第二个字符处插入,如果str1="中国",插入后为中字国

26
PadLeft()PadRight()
在字串左(或右)加空格或指定char字符,使字串达到指定长度,如:
<%
string str1="
中国人";
str1=str1.PadLeft(10,'1'); //
无第二参数为加空格
Response.Write(str1); //
结果为“1111111中国人 字串长为10
%>

27
Remove()
从指定位置开始删除指定数的字符
<%
string str1="
我是萨达姆的崇拜者之一";
Response.Write(str1.Remove(5,4)); //
结果为我是萨达姆之一
%>




需要添加的命名空间:
using System.Xml;

定义几个公共对象:
XmlDocument xmldoc ;
XmlNode xmlnode ;
XmlElement xmlelem ;

1,创建到服务器同名目录下的xml文件:

方法一:
xmldoc = new XmlDocument ( ) ;
//加入XML的声明段落,<?xml version="1.0" encoding="gb2312"?>
XmlDeclaration xmldecl;
 xmldecl = xmldoc.CreateXmlDeclaration("1.0","gb2312",null);
 xmldoc.AppendChild ( xmldecl);

//加入一个根元素
xmlelem = xmldoc.CreateElement ( "" , "Employees" , "" ) ;
xmldoc.AppendChild ( xmlelem ) ;
//加入另外一个元素
for(int i=1;i<3;i++)
{

XmlNode root=xmldoc.SelectSingleNode("Employees");//查找<Employees>
XmlElement xe1=xmldoc.CreateElement("Node");//创建一个<Node>节点
xe1.SetAttribute("genre","李赞红");//设置该节点genre属性
xe1.SetAttribute("ISBN","2-3631-4");//设置该节点ISBN属性

XmlElement xesub1=xmldoc.CreateElement("title");
xesub1.InnerText="CS从入门到精通";//设置文本节点
xe1.AppendChild(xesub1);//添加到<Node>节点中
XmlElement xesub2=xmldoc.CreateElement("author");
xesub2.InnerText="候捷";
xe1.AppendChild(xesub2);
XmlElement xesub3=xmldoc.CreateElement("price");
xesub3.InnerText="58.3";
xe1.AppendChild(xesub3);

root.AppendChild(xe1);//添加到<Employees>节点中
}
//保存创建好的XML文档
xmldoc.Save ( Server.MapPath("data.xml") ) ;

//////////////////////////////////////////////////////////////////////////////////////
结果:在同名目录下生成了名为data.xml的文件,内容如下,
<?xml version="1.0" encoding="gb2312"?>
<Employees>
  <Node genre="李赞红" ISBN="2-3631-4">
    <title>CS从入门到精通</title>
    <author>候捷</author>
    <price>58.3</price>
  </Node>
  <Node genre="李赞红" ISBN="2-3631-4">
    <title>CS从入门到精通</title>
    <author>候捷</author>
    <price>58.3</price>
  </Node>
</Employees>

方法二:
XmlTextWriter xmlWriter;
   string strFilename = Server.MapPath("data1.xml") ;

   xmlWriter = new XmlTextWriter(strFilename,Encoding.Default);//创建一个xml文档
   xmlWriter.Formatting = Formatting.Indented;
   xmlWriter.WriteStartDocument();
   xmlWriter.WriteStartElement("Employees");

   xmlWriter.WriteStartElement("Node");
   xmlWriter.WriteAttributeString("genre","李赞红");
   xmlWriter.WriteAttributeString("ISBN","2-3631-4");

   xmlWriter.WriteStartElement("title");
   xmlWriter.WriteString("CS从入门到精通");
   xmlWriter.WriteEndElement();

   xmlWriter.WriteStartElement("author");
   xmlWriter.WriteString("候捷");
   xmlWriter.WriteEndElement();

   xmlWriter.WriteStartElement("price");
   xmlWriter.WriteString("58.3");
   xmlWriter.WriteEndElement();

   xmlWriter.WriteEndElement();

   xmlWriter.Close();
//////////////////////////////////////////////////////////////////////////////////////
结果:
<?xml version="1.0" encoding="gb2312"?>
<Employees>
  <Node genre="李赞红" ISBN="2-3631-4">
    <title>CS从入门到精通</title>
    <author>候捷</author>
    <price>58.3</price>
  </Node>
</Employees>

2,添加一个结点:

XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load(Server.MapPath("data.xml"));
XmlNode root=xmlDoc.SelectSingleNode("Employees");//查找<Employees>
XmlElement xe1=xmlDoc.CreateElement("Node");//创建一个<Node>节点
xe1.SetAttribute("genre","张三");//设置该节点genre属性
xe1.SetAttribute("ISBN","1-1111-1");//设置该节点ISBN属性

XmlElement xesub1=xmlDoc.CreateElement("title");
xesub1.InnerText="C#入门帮助";//设置文本节点
xe1.AppendChild(xesub1);//添加到<Node>节点中
XmlElement xesub2=xmlDoc.CreateElement("author");
xesub2.InnerText="高手";
xe1.AppendChild(xesub2);
XmlElement xesub3=xmlDoc.CreateElement("price");
xesub3.InnerText="158.3";
xe1.AppendChild(xesub3);

root.AppendChild(xe1);//添加到<Employees>节点中
xmlDoc.Save ( Server.MapPath("data.xml") );

//////////////////////////////////////////////////////////////////////////////////////
结果:在xml原有的内容里添加了一个结点,内容如下,
<?xml version="1.0" encoding="gb2312"?>
<Employees>
  <Node genre="李赞红" ISBN="2-3631-4">
    <title>CS从入门到精通</title>
    <author>候捷</author>
    <price>58.3</price>
  </Node>
  <Node genre="李赞红" ISBN="2-3631-4">
    <title>CS从入门到精通</title>
    <author>候捷</author>
    <price>58.3</price>
  </Node>
  <Node genre="张三" ISBN="1-1111-1">
    <title>C#入门帮助</title>
    <author>高手</author>
    <price>158.3</price>
  </Node>
</Employees>

3,修改结点的值(属性和子结点):

XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load( Server.MapPath("data.xml") );

XmlNodeList nodeList=xmlDoc.SelectSingleNode("Employees").ChildNodes;//获取Employees节点的所有子节点

foreach(XmlNode xn in nodeList)//遍历所有子节点
{
XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型
if(xe.GetAttribute("genre")=="张三")//如果genre属性值为“张三”
{
xe.SetAttribute("genre","update张三");//则修改该属性为“update张三”

XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach(XmlNode xn1 in nls)//遍历
{
XmlElement xe2=(XmlElement)xn1;//转换类型
if(xe2.Name=="author")//如果找到
{
xe2.InnerText="亚胜";//则修改
}
}
}
}
xmlDoc.Save( Server.MapPath("data.xml") );//保存。

//////////////////////////////////////////////////////////////////////////////////////
结果:将原来的所有结点的信息都修改了,xml的内容如下,
<?xml version="1.0" encoding="gb2312"?>
<Employees>
  <Node genre="李赞红" ISBN="2-3631-4">
    <title>CS从入门到精通</title>
    <author>候捷</author>
    <price>58.3</price>
  </Node>
  <Node genre="李赞红" ISBN="2-3631-4">
    <title>CS从入门到精通</title>
    <author>候捷</author>
    <price>58.3</price>
  </Node>
  <Node genre="update张三" ISBN="1-1111-1">
    <title>C#入门帮助</title>
    <author>亚胜</author>
    <price>158.3</price>
  </Node>
</Employees>

4,修改结点(添加结点的属性和添加结点的自结点):
XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load( Server.MapPath("data.xml") );

XmlNodeList nodeList=xmlDoc.SelectSingleNode("Employees").ChildNodes;//获取Employees节点的所有子节点

foreach(XmlNode xn in nodeList)
{
XmlElement xe=(XmlElement)xn;
xe.SetAttribute("test","111111");

XmlElement xesub=xmlDoc.CreateElement("flag");
xesub.InnerText="1";
xe.AppendChild(xesub);
}
xmlDoc.Save( Server.MapPath("data.xml") );

//////////////////////////////////////////////////////////////////////////////////////
结果:每个结点的属性都添加了一个,子结点也添加了一个,内容如下,
<?xml version="1.0" encoding="gb2312"?>
<Employees>
  <Node genre="李赞红" ISBN="2-3631-4" test="111111">
    <title>CS从入门到精通</title>
    <author>候捷</author>
    <price>58.3</price>
    <flag>1</flag>
  </Node>
  <Node genre="李赞红" ISBN="2-3631-4" test="111111">
    <title>CS从入门到精通</title>
    <author>候捷</author>
    <price>58.3</price>
    <flag>1</flag>
  </Node>
  <Node genre="update张三" ISBN="1-1111-1" test="111111">
    <title>C#入门帮助</title>
    <author>亚胜</author>
    <price>158.3</price>
    <flag>1</flag>
  </Node>
</Employees>

5,删除结点中的某一个属性:
XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load( Server.MapPath("data.xml") );
XmlNodeList xnl=xmlDoc.SelectSingleNode("Employees").ChildNodes;
foreach(XmlNode xn in xnl)
{
XmlElement xe=(XmlElement)xn;
xe.RemoveAttribute("genre");//删除genre属性

XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach(XmlNode xn1 in nls)//遍历
{
XmlElement xe2=(XmlElement)xn1;//转换类型
if(xe2.Name=="flag")//如果找到
{
xe.RemoveChild(xe2);//则删除
}
}
}
xmlDoc.Save( Server.MapPath("data.xml") );

//////////////////////////////////////////////////////////////////////////////////////]
结果:删除了结点的一个属性和结点的一个子结点,内容如下,
<?xml version="1.0" encoding="gb2312"?>
<Employees>
  <Node ISBN="2-3631-4" test="111111">
    <title>CS从入门到精通</title>
    <author>候捷</author>
    <price>58.3</price>
  </Node>
  <Node ISBN="2-3631-4" test="111111">
    <title>CS从入门到精通</title>
    <author>候捷</author>
    <price>58.3</price>
  </Node>
  <Node ISBN="1-1111-1" test="111111">
    <title>C#入门帮助</title>
    <author>亚胜</author>
    <price>158.3</price>
  </Node>
</Employees>

6,删除结点:
XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load( Server.MapPath("data.xml") );
XmlNode root=xmlDoc.SelectSingleNode("Employees");
XmlNodeList xnl=xmlDoc.SelectSingleNode("Employees").ChildNodes;
for(int i=0;i<xnl.Count;i++)
{
XmlElement xe=(XmlElement)xnl.Item(i);
if(xe.GetAttribute("genre")=="张三")
{
root.RemoveChild(xe);
if(i<xnl.Count)i=i-1;
}
}
xmlDoc.Save( Server.MapPath("data.xml") );

//////////////////////////////////////////////////////////////////////////////////////]
结果:删除了符合条件的所有结点,原来的内容:

<?xml version="1.0" encoding="gb2312"?>
<Employees>
  <Node genre="李赞红" ISBN="2-3631-4">
    <title>CS从入门到精通</title>
    <author>候捷</author>
    <price>58.3</price>
  </Node>
  <Node genre="李赞红" ISBN="2-3631-4">
    <title>CS从入门到精通</title>
    <author>候捷</author>
    <price>58.3</price>
  </Node>
  <Node genre="张三" ISBN="1-1111-1">
    <title>C#入门帮助</title>
    <author>高手</author>
    <price>158.3</price>
  </Node>
  <Node genre="张三" ISBN="1-1111-1">
    <title>C#入门帮助</title>
    <author>高手</author>
    <price>158.3</price>
  </Node>
</Employees>

删除后的内容:
<?xml version="1.0" encoding="gb2312"?>
<Employees>
  <Node genre="李赞红" ISBN="2-3631-4">
    <title>CS从入门到精通</title>
    <author>候捷</author>
    <price>58.3</price>
  </Node>
  <Node genre="李赞红" ISBN="2-3631-4">
    <title>CS从入门到精通</title>
    <author>候捷</author>
    <price>58.3</price>
  </Node>
</Employees>

 7,按照文本文件读取xml

System.IO.StreamReader myFile =new 
System.IO.StreamReader(Server.MapPath("data.xml"),System.Text.Encoding.Default);
//注意System.Text.Encoding.Default

string myString = myFile.ReadToEnd();//myString是读出的字符串
myFile.Close();





    摘要:

  作为J2EE开发人员,我们似乎经常关注“后端机制(backend mechanics)”。我们通常会忘记,J2EE的主要成功之处在Web应用程序方面;许多原因使得人们喜欢利用Web开发应用程序,但主要还是因为其易于部署的特点允许站点以尽可能低的成本拥有上百万的用户。遗憾的是,在过去几年中,我们在后端投入了太多的时间,而在使我们的Web用户界面对用户自然和响应灵敏方面却投入不足。

  本文介绍一种方法,Ajax,使用它可以构建更为动态和响应更灵敏的Web应用程序。该方法的关键在于对浏览器端的JavaScript、DHTML和与服务器异步通信的组合。本文也演示了启用这种方法是多么简单:利用一个Ajax框架(指DWR)构造一个应用程序,它直接从浏览器与后端服务进行通信。如果使用得当,这种强大的力量可以使应用程序更加自然和响应灵敏,从而提升用户的浏览体验。

  该应用程序中所使用的示例代码已打包为单独的WAR文件,可供下载。

简介

  术语Ajax用来描述一组技术,它使浏览器可以    (全文共15227字)——点击此处阅读全文




在asp.net中连接数据库进行数据库操作时,一般要4、5行代码以上。定义这个定义那个,打开然后又关闭,这样效率很低,且不易维护。这里把这些操作封装成一个类,每次调用完成数据库操作只需要两行代码。

在这个类之前,先写一个类:
using System;
using System.Data;
using System.Data.SqlClient;

///