利用Flash读取SQL Server数据库的值

来源:互联网 发布:网络成瘾的症状 编辑:程序博客网 时间:2024/06/05 16:18
本节我们来练习用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("<?xml version='1.0' encoding='utf-8'?><数据>");
             //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("<?xml version='1.0' encoding='utf-8'?><数据>");

//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();


图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<root.childNodes.length;i++){
                         myTextArea.text+="用户名:"+root.childNodes[i].attributes.用户名+"\t";
                         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

原创粉丝点击