在Visual Studio 2005“解决方案资源管理器”的地球图标上点右键,选择“添加新项”,在弹出的窗口将之命名为xml_list.aspx,稍等片刻,工作区将自动转向该页面,同时在“解决方案资源管理器”内xml_list.aspx下可以展开其逻辑代码xml_list.aspx.cs。因为输出文档类型为 text/xml,所以我们把list.aspx除第一行以外的所有代码都删除,且增加两个参数,修改后第代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="xml_list.aspx.cs" Inherits="xml_list" ContentType="text/xml" CodePage="65001"%>
保存为xml_list.aspx即可,新手朋友还可以再增加一个参数 debug=true,这样在程序出错时就会有具体的错误提示,不过记得,发布之前删除为好。接着双击xml_list.aspx.cs进入逻辑代码,把以下代码输入到文件中:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
//引入SQL命名空间,这是使用SQL Server 客户端必需的
using System.Data.SqlClient;
//定义被引用的xml_list类
public partial class xml_list : System.Web.UI.Page
{
//声明公有变量sql
public string sql;
protected void Page_Load(object sender, EventArgs e)
{
//设定strConnection为数据库连接字符串
string strConnection = "Data Source=(local)\\SQLEXPRESS;Initial Catalog=myTesterDB;User ID=myTester;Password=abcdefg; ";
//建立一个SQL连接,连接字符串strConnection作为一个参数
SqlConnection objConnection=new SqlConnection(strConnection);
//连接应处于“打开“状态,否则一切操作都是徒劳的。
objConnection.Open();
//设置SQL语句,读取myTable中的5条数据
sql = "SELECT top 5 * FROM [myTable] ORDER BY [myPoints] DESC+ ";";
//建立一个SQL命令对象,它有两个参数:第一个是命令即SQL语句,第二个是连接名
SqlCommand cmd = new SqlCommand(sql,objConnection);
//ASP.NET最快的读取方式:SqlDataReader,与ASP中的“1,1”有些类似,都是快速的,只读的
SqlDataReader dr = cmd.ExecuteReader();
//输出XML头,XML根节点设置,其中包括:总记录数、总页数、当前页、管理状态
Response.Write("<数据>");
//while(dr.Read)相当与“有符合的记录就执行一次”,类似于ASP的rs.MoveNext+LOOP
while(dr.Read()){
/*------------------------------------------------------
每读取一次就输出一个子节点,类似于ASP要读取RecordSet中的name值用rs("name")一样,ASP.NET要读取DataReader中的name值,用dr["name"];
---------------------------------------------------------*/
Response.Write("<资料 用户名='"+dr["myUsername"]+"' 积分='"+dr["myPoints"]+"'介绍='"+dr["selfIntro"]+"'/>");
//输出XML结尾
Response.Write("数据>");
//释放连接所耗资源
objConnection.Dispose();
//连接关闭
objConnection.Close();
//释放命令所耗资源
cmd.Dispose();
//释放DataReader所耗资源
dr.Dispose();
本节我们来练习用Flash读取SQL Server数据库中的值,思路如下:用ASP.NET连接读取数据库,并生成XML列表,Flash去读取XML列表并且格式化结果显示在组件中。
在Visual Studio 2005“解决方案资源管理器”的地球图标上点右键,选择“添加新项”,在弹出的窗口将之命名为xml_list.aspx,稍等片刻,工作区将自动转向该页面,同时在“解决方案资源管理器”内xml_list.aspx下可以展开其逻辑代码xml_list.aspx.cs。因为输出文档类型为 text/xml,所以我们把list.aspx除第一行以外的所有代码都删除,且增加两个参数,修改后第代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="xml_list.aspx.cs" Inherits="xml_list" ContentType="text/xml" CodePage="65001"%>
保存为xml_list.aspx即可,新手朋友还可以再增加一个参数 debug=true,这样在程序出错时就会有具体的错误提示,不过记得,发布之前删除为好。接着双击xml_list.aspx.cs进入逻辑代码,把以下代码输入到文件中:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
//引入SQL命名空间,这是使用SQL Server 客户端必需的
using System.Data.SqlClient;
//定义被引用的xml_list类
public partial class xml_list : System.Web.UI.Page
{
//声明公有变量sql
public string sql;
protected void Page_Load(object sender, EventArgs e)
{
//设定strConnection为数据库连接字符串
string strConnection = "Data Source=(local)\\SQLEXPRESS;Initial Catalog=myTesterDB;User ID=myTester;Password=abcdefg; ";
//建立一个SQL连接,连接字符串strConnection作为一个参数
SqlConnection objConnection=new SqlConnection(strConnection);
//连接应处于“打开“状态,否则一切操作都是徒劳的。
objConnection.Open();
//设置SQL语句,读取myTable中的5条数据
sql = "SELECT top 5 * FROM [myTable] ORDER BY [myPoints] DESC+ ";";
//建立一个SQL命令对象,它有两个参数:第一个是命令即SQL语句,第二个是连接名
SqlCommand cmd = new SqlCommand(sql,objConnection);
//ASP.NET最快的读取方式:SqlDataReader,与ASP中的“1,1”有些类似,都是快速的,只读的
SqlDataReader dr = cmd.ExecuteReader();
//输出XML头,XML根节点设置,其中包括:总记录数、总页数、当前页、管理状态
Response.Write("<数据>");
图10.35
* 注:该示例的源文件在光盘 第十章\2\xml_list.aspx和xml_list.cs
本节只需利用Flash读取ASP.NET取回的XML值即可完成一个简单的交互示例。在Flash软件中新建一个文档,拖入主场景一个TextArea组件,并命名为myTextArea,它用来显示结果,在Flash文档的动作面板中输入以下代码:
var myTextArea:mx.controls.TextArea;
var myXML:XML=new XML();
myXML.ignoreWhite=true;
myXML.onLoad=function(success:Boolean):Void{
if(success){
var root:XMLNode=this.firstChild;
for(var i:Number=0;i
myTextArea.text+="积分:"+root.childNodes[i].attributes.积分+"\t";
myTextArea.text+="介绍:"+root.childNodes[i].attributes.介绍+"\t";
myTextArea.text+="\n\n";
}
}
}
myXML.load("http://develop.csai.cn ");
保存文件,调试代码,效果如图10.36所示:
图10.36
* 注:此示例的源文件在 第十章\2\xml_list.fla