使用XML实现Flash与.NET通信

本实例的原理和客户端代码请参看:使用XML实现Flash与服务器通信。此处只讲解怎样用C#实现相同功能。如下面代码:

<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
private void Page_Load(object sender, System.EventArgs e) 
{
	Stream inStream=Request.InputStream;
	if (inStream.Length > 0)
	{
		XmlReader reader = XmlReader.Create(Request.InputStream);
		reader.ReadToFollowing("student");
		string name = reader.GetAttribute("name");
		reader.Close();

		XmlWriterSettings settings = new XmlWriterSettings();
		settings.Indent = true;
		XmlWriter writer = XmlWriter.Create(Response.Output, settings);

		writer.WriteStartElement("item");
		OleDbConnection con = new OleDbConnection();
		con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
			"Data Source=|DataDirectory|Exam.mdb";
		string sqlStr = "Select StudentID,Name,ClassName FROM Student" +
			" Where Name LIKE '" + name + "%'";
		OleDbCommand cmd = new OleDbCommand(sqlStr, con);
		con.Open();
		OleDbDataReader dr = cmd.ExecuteReader();
		while (dr.Read())
		{
			writer.WriteStartElement("student");
			writer.WriteAttributeString("id", dr[0].ToString());
			writer.WriteAttributeString("name", dr[1].ToString());
			writer.WriteAttributeString("cname", dr[2].ToString());
			writer.WriteEndElement();
		}
		writer.WriteEndElement();

		writer.Close();
		dr.Close();
		con.Close();
	}
}
</script>

因为我们只是对XML数据进行查询,所以好使用XMLReader和XmlWriter类,它们可以提供对XML文件快速、非缓存、只进读写,所以速度比用XmlDocument类快得多。而且它不需要服务器安装有MSXML2.DOMDocument组件,其扩展性更强。我租用的服务器就没有安装这个组件,怪不得我用ASP作为后台在服务器运行会出错。实际上,大家看到的Demo的后台用的是C#。

上一篇上一篇: 使用Ajax实现简单查询
下一篇下一篇: ColdFusion连接SQL Server 出错
来自文章来自: 本站原创
引用引用通告: 查看所有引用 | 我要引用此文章
标签Tags: DOTNET XML Flash8
相关相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭